重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
链表分类型有:单链表、双链表、单向环形链表、双向环形链表。
创新互联建站凭借在网站建设、网站推广领域领先的技术能力和多年的行业经验,为客户提供超值的营销型网站建设服务,我们始终认为:好的营销型网站就是好的业务员。我们已成功为企业单位、个人等客户提供了网站设计制作、网站设计服务,以良好的商业信誉,完善的服务及深厚的技术力量处于同行领先地位。
单链表:只有一个头节点为入口,并且每一个节点只有一个单向地址指向下一个节点,简单的说在后一个节点无法返回上一个节点。
双链表:有头节点和尾节点作为入口,每一个节点有两个地址,一个指向前一个节点,一个指向后一个节点。解决了单链表无法返回前一个节点的问题。
单向环形链表:这是一个特殊的单链表,这个链表是把它的最后一个节点地址指向首节点的入口处。如果它要查找前一个节点的时候需要,转回首节点然后才能到达前一个节点。
双向环形链表:顾名思义,构成环形结构的双向链表。
C语言里面的链表是一种数据结构
是一种线形的存储结构
链表和数组一样,也是将一组同类型的数据组织在一起的一种数据结构
不同的是
数组采用的是顺序存储,依靠数组的首地址和元素的相对地址(下标)来实现访问。
优点是访问方便快捷,而缺点是数组是静态的,不利于实现元素的动态增减。
而链表采用的是离散存储,依靠节点间的指向下一个节点的指针来实现访问。
其优缺点和数组相反
链表里可以有不同种类型数据
#includestdio.h
#include stdlib.h
struct node
{int data;
struct node *next;
};
struct node *create()
{
struct node *p;
p=(struct node *)malloc(sizeof(struct node));
p-next=0;
return p;
}
void show(node *head)
{
head=head-next;
while(head!=NULL)
{
printf("%d\n",head-data);
head=head-next;
}
}
void main()
{
struct node *head,*q,*p,*t;
int i;
int x;
head=create();
for(i=1;i=10;i++)
{
printf("please input data:");
scanf("%d",x);
q=create();
q-data=x;
if(i==1)
{
head-next=q;
p=q;
}
else
{p-next=q;
p=q;}
}
show(head);
}