#include <stdlib.h>
#include <stdio.h>
typedef struct node
{ int data;
struct node *next;
}linknode;
typedef linknode *linklist;
/*尾插法创建带头结点的单链表*/
linklist creatlinklist()
{ linklist head,r,s;
int x;
head=r=NULL;
printf("\n请输入一组以0结束的整数序列:\n");
scanf("%d",&x);
while(x) //以0作为标志符结束
{ s=(linklist)malloc(sizeof(linknode)); //分配地址空间
s->data=x;
if(head ==NULL) //
head =s;
else
r->next=s;
r=s;
scanf("%d",&x);
}
if (r) r->next=NULL;
return head;
}
/*输出单链表*/
void print(linklist head)
{ linklist p;
p=head->next; //带头结点
printf("List is:\n");
while(p)
{ printf("%5d",p->data);
p=p->next;
}
printf("\n");
}
//基于上述结构定义,求单链表中的结点个数的算法程序如下:
int count(linklist head)
{
//在此处补充算法
}
int main() /*测试函数*/
{ linklist head;
head=creatlinklist();
print(head);
printf("\nLength of head is:%d",count(head));
return 0;
}
带头节点的单链表(C语言)
本文介绍了如何使用C语言实现一个单链表,包括尾插法创建带头结点的链表、输出链表以及计算链表中节点个数的算法。
摘要由CSDN通过智能技术生成