链式存储结构

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域

初始化

我的初始化是从键盘输入数据,只要不输入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;
}

运行结果如下:
在这里插入图片描述
个人笔记,感谢阅读。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐