C語言實現單鏈表逆序與逆序輸出例項

2021-07-10 01:21:40 字數 1776 閱讀 8667

這篇文章主要介紹了c語言實現單鏈表逆序與逆序輸出,是資料結構與演算法中比較基礎的重要內容,有必要加以牢固掌握,需要的朋友可以參考下

#include

#include

<

stack

>

#include

using namespace std;

typedef struct nodenode;

//尾部新增

node * add(int n, node * head)

else

if (head->next ==

null)

else

p->next = t;

}return head;

}//順序輸出

void print(node * head)

cout << endl;

}//遞迴

void reverseprint(node * p)

}//棧

void reverseprint2(node * head)

while (!s.empty())

}int main()

print(head);

reverseprint(head);

reverseprint2(head);

system("pause");

return

0;}

逆序輸出可以用三種方法: 遞迴,棧,逆序後輸出。最後一種接下來講到。

#include

#include

<

stack

>

#include

using namespace std;

typedef struct nodenode;

node * add(int n, node * head)

else

if (head->next ==

null)

else

p->next = t;

}return head;

}//迴圈

node * reverse(node * head)

node * p1 = head;

node * p2 = head->next;

node * p3 =

null;

head->next =

null;

while (p2 !=

null)

head = p1;

return head;

}void print(node * head)

cout << endl;

}//遞迴

node * reverse2(node * p)

node * newhead = reverse2(p->next);

p->next->next = p;

p->next =

null;

return newhead;

}int main()

print(head);

head = reverse(head);

print(head);

head = reverse2(head);

print(head);

system("pause");

return

0;}

這裡鍊錶逆序用了兩種方法:迴圈,遞迴。讀者最容易理解的方法就是在紙上自己畫一下。

單鏈表逆序或者逆序輸出

分為兩種情況,一種是只逆序輸出,實際上不逆序 另一種是把鍊錶逆序。逆序輸出 include include includeusing namespace std typedef struct nodenode 尾部新增 node add int n,node head else if head ne...

C語言實現逆序輸出詳細

問題 c語言實現對陣列元素依次賦值0,1,2,3,4,5,6,7,8,9,然後按照逆序輸出。解題思路 顯然首先要定義乙個長度為10的陣列,由於賦給的值是整數,因此,陣列可以定義為整型,要賦值的是0 9,有一定規律,可以用迴圈來賦值。源 演示 include 標頭檔案 int main 主函式 pri...

單鏈表逆序(c實現)

單鏈表逆序作為常見的資料操作,具體實現有不同的版本,但是總歸需要考慮輸入結點為空 乙個結點和多個結點的情況。該逆序思想來自 劍指offer 另外乙個容易想到的逆序方式是,申請乙個頭結點head,然後把待逆序結點順序插入到頭結點後head next,最後返回head next即可。include in...