有头 链表的创建

struct Node
{//创建有头链表
int date;
struct Nodenext;
};
struct Node
cendhead()
{
struct Node headenode = (struct Node)malloc(sizeof(struct Node));
headenode->next = NULL;
return headenode;//创建表头
}
struct Nodecendnode(int date)
{
struct Node
newnode = (struct Node*)malloc(sizeof(struct Node));
newnode->date = date;
newnode->next = NULL;//创建链表
return newnode;
}
//再封装的方式
struct list
{//描述结构的属性
struct Nodeheadenode;//定义一个表头
//万金油参数
int listsize;//记录链表的节点数
};
struct list
centlist()
{//创建过程就是最初的状态
struct list* List = (struct list*)malloc(sizeof(struct Node));
List->headenode = cendhead();
List->listsize = 0;
return List;
}
void insertnode(struct listList, int date)
{
if (List != NULL)
{
struct Node
newnode = cendnode(date);
newnode->next = List->headenode->next;
List->headenode->next = newnode;
List->listsize++;
}
}
int emepy(struct listList)
{
return List->listsize == 0;
}
int size(struct list
List)
{
return List->listsize;
}
void printlist(struct listList)
{
if (List != NULL)
{
struct Node
pmove = List->headenode->next;
while (pmove!=NULL)
{
printf("%d\t",pmove->date);
pmove = pmove->next;
}
printf("\n");
}

}
int main()
{//由头链表的在封装写法

struct list*list = centlist();//创建链表
for (int i = 0; i < 3; i++)
{
	insertnode(list, i);
}
printlist(list);
printf("%d", size(list));

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值