#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;
}
含头结点的C++尾插法创建简单链表并输出
最新推荐文章于 2024-09-19 11:29:26 发布