创造一个链表吧-创新互联

为什么使用链表

我们在储存一大堆数的时候经常使用数组,可是数组有时候会不太灵活如:
有一列已经从小到大排好序的数字2 3 5 8 9 10 12.现在要插入6使得仍然是从小到大排列.
用数组则我们需要把8及其后面所有数字向后挪一位如下图一部分.
那么什么是链表呢?如下图二部分.三部分是链表中插入数的实现方法.在这里插入图片描述
在C语言中用指针和动态内存分配函数malloc来实现.
链表由很多结点构成,而每一个结点都由俩部分构成,左边的部分用来存储数值,右边的存储下一个结点的地址

员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。创新互联坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供网站设计、成都网站制作、微信公众号开发、电商网站开发,小程序设计,软件按需定制网站等一站式互联网企业服务。创造一个链表

代码实现

#include#include//调用malloc函数用的头文件
struct ch
{int date ;
	struct ch *next;//因为下一个结点类型也是struct ch所以指针类型也是这个
};//创造一个结构类型来表示结点
int main()
{struct ch *head,*p,*q,*t;//p,q临时指针用来输入创造链表,t用来输出,head头指针,指向链表的第一个结点
	int i,n,a;//i,n用来循环输入,a用来暂时储存输入的数字
	scanf("%d",&n);
	head=NULL;//将头函数初始为空
	for(i=0;iscanf("%d",&a);
		p=(struct ch*)malloc(sizeof(struct ch));//将malloc类型强制转换并将p指向动态分配的内存空间地址
		p->date=a;
		p->next=NULL;//给这个结点赋值并将结点的指针部分初始为空
		if(head==NULL){	head=p;//如果这是第一个结点就让头指针指向他
		}else{	q->next=p;
		}//如果不是就让上一个结点的指针指向他
		q=p;
	}//循环n次创造一个n个结点的链表
	t=head;
	while(t!=NULL){printf("%d ",t->date);
		t=t->next;
	}
	return 0;
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前标题:创造一个链表吧-创新互联
标题路径:http://pwwzsj.com/article/djpoeh.html