数据结构的链式存储结构——链表(一) 链表的初始化(C语言)
链式存储结构链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。初始化我的初始化是从键盘输入数据,只要不输入0就能一直创建新的结点,输入0就是链表结束。并且打印一遍链表。代码实现如下:#i
·
链式存储结构
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
初始化
我的初始化是从键盘输入数据,只要不输入0就能一直创建新的结点,输入0就是链表结束。并且打印一遍链表。
代码实现如下:
#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int data; //数据域
struct Node *next; //指针域,指向下一个结点
}link; //typedef把link另作为struct Node变量类型的名字
link *initLink(){
link *head=NULL; //创建一个头结点
head=(link*)malloc(sizeof(link)); //动态内存分配
link *temp=head; //创建一个临时指针,并且指向头结点
scanf("%d",&temp->data); //从键盘输入头结点的值
while(temp->data!=0){ //只要不输入0就会一直创建新的结点
link *a=(link*)malloc(sizeof(link));
temp->next=a;
temp=a;
scanf("%d",&temp->data);
}
temp->next=NULL;
temp=head; //输入0后,temp指针就会指回头结点
while(temp!=NULL){ //打印
printf("%d ",temp->data);
temp=temp->next;
}
}
int main(){
link *p=initLink();
return 0;
}
运行结果如下:
个人笔记,感谢阅读。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)