链表的创建和插入

来源:互联网 发布:lighttpd python 编辑:程序博客网 时间:2024/05/22 10:32
#include <stdio.h>#include <stdlib.h>typedef struct NODE{    int data;    struct NODE *next;}Node;Node * create_linklist(int n){    Node *head=NULL,*p,*last;    int d;    int i;    for(i=0;i<n;i++)    {        scanf("%d",&d);        p=(Node *)malloc(sizeof(Node));        p->data=d;        p->next=NULL;        if(head==NULL)            head=p;        else            last->next=p;        last=p;    }    return head;}Node *insert_node(Node *head,int b){    Node * pre1=head,*pre2,*p;    p=(Node*)malloc(sizeof(Node));    p->data=b;    if(head==NULL)    {        head=p;        p->next=NULL;    }    else if(p->data<head->data)    {        head=p;        p->next=pre1;    }    else    {        while(pre1!=NULL&&p->data>=pre1->data)        {            pre2=pre1;            pre1=pre1->next;        }        p->next=pre2->next;        pre2->next=p;    }    return head;}void print(Node * head){    Node *p;    p=head;    while(p!=NULL)    {        printf("%-5d",p->data);        p=p->next;    }    printf("\n");    return;}int main(){    Node *head;    head=create_linklist(6);     int b=90,i;        head=insert_node(head,b);    print(head);    return 0;}

0 0
原创粉丝点击