#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
};
int main()
{
struct node node1={1,nullptr};
struct node node2={2,nullptr};
struct node node3={3,nullptr};
node1.next=&node2; //链接操作,表示通过第一个结点可以找到第二个,第二个找到第三个
node2.next=&node3;
//若在此处加上node3.next=&node1,那么这个程序会123无线循环下去,因为这样构成了循环链表
struct node *p=&node1;//定义node结构体指针,让它指向第一个结点的首地址
while(p!=nullptr)
{
printf("%d",p->data);
p=p->next; //p=p->next是把p->next的值赋给p
}
system("pause");
return 0;
}
链表的关联也可以这么写:
#include <stdlib.h>
#include <stdio.h>
typedef struct node
{
int data;
struct node *next;
}NODE,*lplist;
void main()
{
NODE node1={1,nullptr};
NODE node2={2,nullptr};
NODE node3={3,nullptr};
lplist p=&node1;
p->next=&node2;
p->next->next=&node3;
while(p!=nullptr)
{
printf("%d->",p->data);
p=p->next;
}
system("pause");
}
1.创建一个结构体,结构体包含数据域还有指针域
2.创建三个结构体变量,给结构体变量进行赋值操作
3.定义结构体的头指针变量,将指针变量指向已创建的第一个结构体地址
4.将三个结构体进行关联,第一个结构体变量的指针指向第二个结构体变量的地址,第二个结构体变量的指针指向第三个结构体变量的地址
5.将三个结构体的指针与地址关联好以后,静态链表的创建已经完成。
6.最后编写while循环语句,循环条件是指向第一个结构体的指针非空,意思是第一个结构体是存在的。
7.再调用p=p->next进行指针循环,将三个结构体的数据域p->data显示出来。