#include<stdio.h>
#include<stdlib.h>
struct listnode *heap;
typedef struct listnode
{
int data;
struct listnode *next;
}listnode;
listnode * creatlist()
{
listnode * temp;
listnode *p;
listnode *a;
int i;
temp = (listnode*)malloc(sizeof(listnode));
p = temp;
heap = temp;
p->data = 1122; //头结点,不初始化值一般为0,一般冲下一个节点开始
for(i=1;i<11;i++)
{
a = (listnode*)malloc(sizeof(listnode));
a->data = i;
a->next = NULL;
p->next = a;
printf("%d\t",p->data);
p=p->next;
}
printf("\n");
return temp;
}
void outputlist(listnode *p)
{
struct listnode *h;
h = p;
int i =0;
if(h == NULL)
{
printf("the list is null\n");
return;
}
while(h!=NULL)
{
printf("%d\t",h->data);
h=h->next;
sleep(1);
if(0 == (i%10))
{
printf("\n");
i = 0;
}
i++;
}
printf("\n");
return;
}
listnode * insertlist(int sum,int data,struct listnode *p)
{
int i = 0;
listnode *h;
h = (listnode *)malloc(sizeof(listnode));
h->data = data;
for(i = 1;i<sum;i++)
{
p = p->next;
}
h->next = p->next;
p->next = h;
return p;
}
listnode * deletelist(int sum,struct listnode *p)
{
int i = 0;
for(i = 1;i<sum;i++)
{
p = p->next;
}
p->next = p->next->next;
return p;
}
listnode * looplist(struct listnode *p)
{
while(p->next != NULL)
{
p=p->next;
}
p->next = heap->next;
printf("22222\t");
return p;
}
int main()
{
int data,num;
num = 5;
data = 2021;
listnode *p;
printf("creat list...\n");
p = creatlist();
printf("print list...\n");
outputlist(p);
printf("insert list...\n");
insertlist(num,data,p);
printf("print list...\n");
outputlist(p);
printf("delete list...\n");
deletelist(num,p);
printf("print list...\n");
outputlist(p);
printf("loop list...\n");
looplist(p);
printf("print list...\n");
outputlist(p);
// printf("insert list...\n");
// insertlist(7,207,p);
// printf("insert list...\n");
// insertlist(9,209,p);
// outputlist(p);
return 0;
}