不带头结点的单链表的常规操作

来源:互联网 发布:2016最新赚钱网络手游 编辑:程序博客网 时间:2024/05/23 14:20

编程写出一个不带头结点的单链表的常规操作,创建、中间插入、删除、逆序、遍历。

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);      return 0;} Linkptr = temp;temp= temp->next; while(temp!= ‘\0’){     if(temp->num == num)     {          ptr->next = temp->next;          free(temp);          temp = NULL;          return 0;     }     ptr = temp;         temp = temp->next;}}//逆序intreverse_link(Link *head){if(*head== NULL || (*head)->next == NULL){    return -1;}Linkstr = *head;Linkptr = str->next;Linktemp = ptr->next; while(temp!= NULL){    ptr->next = str;    str = temp;    temp = temp->next;} ptr->next= str;(*head)->next= NULL;*head= ptr;} 


0 0
原创粉丝点击