单链表的创建 可以用头插法和尾插法,也分带头结点的链表和不带头结点的链表
#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
typedef struct lnode
{
datatype data;
struct lnode *next;
}LNode,*LinkList;
LinkList H;
int flag = -1;
//头插法创建链表
LinkList Creat_LinkList()//头插法
{
LinkList L = NULL;
LNode *s;
int x;
scanf("%d",&x);
while(x != flag)
{
s = (LNode *)malloc(sizeof(LNode));
s->data = x;
s->next = L;
L = s;
scanf("%d",&x);
}
return L;
}
//尾插法创建链表
LinkList Creat_LinkList2()//尾插法
{
LinkList L = NULL;
LNode *s,*r = NULL;
int x;
scanf("%d",&x);
while(x != flag)
{
s = (LNode *)malloc(sizeof(LNode));
s->data = x;
if(L == NULL)
L = s;
else
r->next = s;
r = s;
scanf("%d",&x);
}
if(r != NULL)
r->next = NULL;
return L;
}
//求不带头结点的链表长
int Length_LinkList2(LinkList L)//不带头结点求表长
{
LNode *p = L;
int j = 0;
while(p)
{
j++;
p = p->next;
}
return j;
}
void main()
{
LinkList L = Creat_LinkList2();
print(L);
}
每天一个小程序(1)——链表的创建
最新推荐文章于 2023-03-08 10:31:12 发布