C++链表的创建以及分析

#include <iostream>
using namespace std;
//链表结点
class node
{
public:
	int data;
	node *next;                      //指向同类型的指针
};
void create(node *phead)
{
	node *p = phead;
	for (int i = 1; i < 10; i++)
	{
		node *newest = new node;
		newest->data = i;
		newest->next = NULL;
		p->next = newest;
		p = newest;
	}
}
void output(node *phead)
{
	phead = phead->next;                //头结点数据域为0,跳过头结点
	while (phead != NULL)
	{
		cout << phead->data<<" ";
		phead = phead->next;
	}
}
int main()
{
	node *head;
	head = new node;
	head->data = 0;
	head->next = NULL;
	create(head);
	output(head);
	system("pause");
	return 0;
}

注释:1.node * next可以理解为指针域

           2.主函数中初始化头结点head,并传入create(此头结点为链表名)

          3.①在create函数中定义类指针*p,可以理解为工作指针,即让链表原有的前一个结点和新加入的结点进行链接。而方法是

               对前一个结点地址的操作,即p->next=newest,等价于让前一个结点的next指向newest。此时前一个结点的Next一直指                向下一个新结点newest。然后让p指向新来的结点newest,准备进行下一次链接动作。

              ②后面创建链表添加数据的方式就重复①。

           4.注意每次新结点都要开辟新的内存空间,即用new方式。

           5.头结点可以存放一些其他数据方便其他操作,不一定要为0。

猜你喜欢

转载自blog.csdn.net/kfc33832168/article/details/89738841
今日推荐