链表模板(中间插入)

来源:互联网 发布:ps4网络设置 编辑:程序博客网 时间:2024/06/07 22:07
#include<stdio.h>struct node{    int num;    struct node *next;};typedef struct node Node;typedef Node * Link;void init_link(Link *head){    *head = NULL;}void insert_head_node(Link newnode,Link *head){    newnode->next = *head;        *head = newnode;}void insert_tail_node(Link newnode,Link *head){    if(*head == NULL)    {        newnode->next = NULL;*head = newnode;    }    else    {        Link temp = *head;while(temp->next != NULL){    temp = temp->next;}temp->next = newnode;newnode->next = NULL;    }}int insert_mid_node(Link newnode, Link *head, int num){    if(*head == NULL)    {        return -1;    }        Link temp = *head;    while(temp != NULL)    {        if(temp->num == num){    newnode->next = temp->next;    temp->next = newnode;    return 0;}temp = temp->next;    }    return -1;}void display_link(Link head){    Link temp = head;    while(temp != NULL)    {        printf("%d\n",temp->num);temp = temp->next;    }}int main(){    Link head;    Link newnode;    int i;    init_link(&head);    if(head == NULL)    {        printf("head is NULL!\n");    }    for(i = 0; i < 10; i++)    {        newnode = (Link)malloc(sizeof(Node));newnode->num = i+1;//insert_head_node(newnode,&head);insert_tail_node(newnode,&head);    }    display_link(head);//(遍历这个链表检查是否插入成功)    newnode = (Link)malloc(sizeof(Node));    newnode->num = 11;    insert_mid_node(newnode,&head,5);    display_link(head);    return 0;}

0 0
原创粉丝点击