#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; //不带头节点
printf("List is:\n");
while(p)
{ printf("%5d",p->data);
p=p->next;
}
printf("\n");
}
//基于上述结构定义,求单链表中的结点个数的算法程序如下:
int count(linklist head)
{
linklist p;
int i;
p=head->next;
while(p)
{
p=p->next;
i++;
}
//在此处补充代码
}
int main() /*测试函数*/
{ linklist head;
head=creatlinklist();
print(head);
printf("\nLength of head is:%d",count(head));
return 0;
}
不带头结点的单链表(C语言)
原创
©著作权归作者所有:来自51CTO博客作者lizhao1688的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:爬楼梯(动态规划算法)
下一篇:二进制手表(枚举法)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
4.带头节点的双链表的实现(C语言)
双链表基本运算的代码实现,前插、后插操作
双链表 头结点 插入操作 删除操作 -
单链表(不带头结点)
按自己的想法和思路写了一下不带头结点的单链表的实现
c++ 职场 休闲 单链表