含頭結點的C++尾插法建立簡單鏈表並輸出
阿新 • • 發佈:2019-02-04
#include <iostream> using namespace std; const int N = 10; struct Node { int data; Node *next; }; //尾插法連結串列建立與輸出 int main() { int i; Node *head, *pNew, *pEnd;//一個頭結點,一個不斷建立的新節點,一個始終會指向末端的尾結點 head = new Node;//給頭結點分配空間 pEnd = head;/*讓頭結點指向剛建立的第一個節點,此時pEnd也是末節點, 剛開始同時擔當頭和尾,等pEnd移走時,head還是指向第一個節點,後面才好輸出*/ for ( i = 0; i < N; i++ ) { pNew = new Node; pNew->data = i;//賦值 pEnd->next = pNew;//讓pEnd指向pEnd pEnd = pNew;/*pEnd 本來在 pNew前面,但現在pEnd在pNew上, 因為是賦地址值,原來pEnd並沒有消失,下個迴圈pNew = new Node, 就又重新建立一個節點,反覆執行*/ } pEnd->next = nullptr;//讓最後一個節點指向空 //遍歷輸出 Node *p = head->next; while ( p ) { cout << p->data; p = p->next; } return 0; }