编程写出一个不带头结点的单链表的常规操作,创建、中间插入、删除、逆序、遍历。
struct stu
{
intnum;
structstu *next;
};
typedefstruct node Node;
typedefNode * Link;
//创建
voidinit_node(Link *head)
{
*head = NULL;
}
//中间插入
voidinsert_midnode(Link newname,Link head,int num)
{
if(head== NULL)
{
return -1;
}
Linktemp = head;
while(temp!= NULL)
{
if(tempp->num == num)
{
newnode>next = temp->next;
temp->next = newnode;
return 0;
}
temp = temp->next;
}
}
//遍历
voiddisplay_link(Link head)
{
Linktemp = head;
while(temp!= ‘\0’)
{
printf(“%d\t”,temp->num);
temp = temp->next;
}
printf(“\n”);
}
//删除
intdel_midnode(Linnk *head,int num)
{
if(*head== NULL)
{
return -1;
}
Linktemp = *head;
if((*head)->num== num)
{
*head = (*head)->next;
free(temp);
retur