struct Node
{//创建有头链表
int date;
struct Nodenext;
};
struct Nodecendhead()
{
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 Nodenewnode = cendnode(date);
newnode->next = List->headenode->next;
List->headenode->next = newnode;
List->listsize++;
}
}
int emepy(struct listList)
{
return List->listsize == 0;
}
int size(struct listList)
{
return List->listsize;
}
void printlist(struct listList)
{
if (List != NULL)
{
struct Nodepmove = 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));
}