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

    xiaoxiao2021-03-26  24

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

    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; }

    转载请注明原文地址: https://ju.6miu.com/read-662575.html

    最新回复(0)