最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言解字符串逆序和單向鏈表逆序問題的代碼示例

 更新時間:2016年06月06日 14:52:35   作者:劉偉  
這篇文章主要介紹了C語言解字符串逆序和單向鏈表逆序問題的代碼示例,求逆序也是考研和面試中的基礎(chǔ)算法題類型,需要的朋友可以參考下

字符串逆序
上次面試碰到一個單向鏈表逆序的題目,幸好對字符串逆序比較熟悉,類比做出來了。字符串逆序比較簡單,直接上代碼:

void stringReverse(char* p1,char* p2) 
{ 
 if(p1==p2)return; 
 //swap the value of p1 ,p2 
 *p1=(*p1)+(*p2); 
 *p2=(*p1)-(*p2); 
 *p1=(*p1)-(*p2); 
  if(p1==p2-1)return; 
  else stringReverse(++p1,--p2); 
} 

調(diào)用示例:

stringReverse(str,str+strlen(str)-1); 

單向鏈表逆序
先上三幅圖:原始狀態(tài)是圖一,全部逆序之后是圖三的樣子,圖二是逆序一步之后的樣子。按照圖二的步驟依次往后,每次移動一步,把p1->next 反向,直到全部逆序。詳細(xì)原理請看代碼。
圖一:

201666144741552.png (619×144)

圖二:

201666144815285.png (619×144)

圖三:

201666144831984.png (619×144)

typedef struct Node Node; 
struct Node{ 
 int data; 
 Node* next; 
}; 
 
Node* reverseLinkList(Node* head){ 
 if (head==NULL||head->next==NULL) { 
  return head; 
 } 
 Node* p1 = head; 
 Node* p2 = p1->next; 
 Node* p3 = p2->next; 
 p1->next = NULL;//p1要變成尾指針,所以指向NULL 
 while (p3!=NULL) { 
  p2->next = p1;//p2->next 反向 
  p1=p2;//p1指針向后移動一步 
  p2=p3;//p2指針向后移動一步 
  p3=p3->next;//p3指針向后移動一步 
 } 
 p2->next=p1;//p3指向了NULL,p2反向 
 head=p2;//頭指針指向之前的尾指針 
 return head; 
} 

至此結(jié)束了。

相關(guān)文章

  • C++實(shí)現(xiàn)哈夫曼樹算法

    C++實(shí)現(xiàn)哈夫曼樹算法

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)哈夫曼樹的具體代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • vscode和cmake編譯多個C++文件的實(shí)現(xiàn)方法

    vscode和cmake編譯多個C++文件的實(shí)現(xiàn)方法

    這篇文章主要介紹了vscode和cmake編譯多個C++文件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • c語言定時器示例分享

    c語言定時器示例分享

    在linux下開發(fā),使用的是C語言。適用于需要定時的軟件開發(fā),以系統(tǒng)真實(shí)的時間來計(jì)算,它送出SIGALRM信號。每隔一秒定時一次
    2014-04-04
  • QT實(shí)現(xiàn)多文件拖拽獲取路徑的方法

    QT實(shí)現(xiàn)多文件拖拽獲取路徑的方法

    這篇文章主要為大家詳細(xì)介紹了QT實(shí)現(xiàn)多文件拖拽獲取路徑的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 你知道C語言函數(shù)調(diào)用常用的2種方式嗎

    你知道C語言函數(shù)調(diào)用常用的2種方式嗎

    本篇博客會講解C語言函數(shù)調(diào)用的2種方式,分別是:傳值調(diào)用和傳址調(diào)用。這2種函數(shù)調(diào)用方式有什么區(qū)別呢?為什么會有不同的效果呢?分別有哪些用途呢?下面就來一一展開
    2023-04-04
  • C++實(shí)現(xiàn)LeetCode(205.同構(gòu)字符串)

    C++實(shí)現(xiàn)LeetCode(205.同構(gòu)字符串)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(205.同構(gòu)字符串),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++實(shí)現(xiàn) vector 的四則運(yùn)算

    C++實(shí)現(xiàn) vector 的四則運(yùn)算

    本文給大家介紹的是在C++中實(shí)現(xiàn)高效的vector四則運(yùn)算的方法的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • C語言不使用strcpy函數(shù)如何實(shí)現(xiàn)字符串復(fù)制功能

    C語言不使用strcpy函數(shù)如何實(shí)現(xiàn)字符串復(fù)制功能

    這篇文章主要給大家介紹了關(guān)于C語言不使用strcpy函數(shù)如何實(shí)現(xiàn)字符串復(fù)制功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • C語言中求解圖形的問題

    C語言中求解圖形的問題

    這篇文章主要介紹了C語言中求解圖形的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語言基于考研的棧和隊(duì)列

    C語言基于考研的棧和隊(duì)列

    這篇文章主要介紹了考研時的C語言中的堆棧和隊(duì)列的相關(guān)資料,需要的朋友可以參考下,小編覺得這篇文章寫的很好,希望能給你帶來幫助
    2021-08-08

最新評論

黎城县| 玉屏| 德令哈市| 米脂县| 吉木萨尔县| 甘肃省| 白城市| 承德市| 福建省| 安达市| 庆安县| 友谊县| 大埔县| 大厂| 汾阳市| 米泉市| 利川市| 德庆县| 巧家县| 辽中县| 项城市| 古丈县| 中宁县| 九江县| 西昌市| 嘉峪关市| 莆田市| 黑河市| 宜章县| 喀喇| 阿鲁科尔沁旗| 新乐市| 久治县| 乌苏市| 齐齐哈尔市| 阿瓦提县| 铜川市| 岑溪市| 乃东县| 兰西县| 措美县|