#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。