第三十七次发博不知道用什么标题好

链表

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 typedef struct nodd{
 4     int data;
 5     struct node *next;
 6 }slist;
 7 
 8 slist* creat(slist *L,int a[],int n){                    //头插 
 9     slist *p=L;
10     int i;
11     for(i=0;i<n;i++){
12         p=(slist*)malloc(sizeof(slist));
13         p->data=a[i];
14         p->next=L->next;
15         p=L;
16     }
17         return L;
18 }
19 
20 void delet(slist *L,int i,int x){                        //删除 
21     slist *p=L;
22     int j;
23     while(p!=NULL)
24     {
25         if(x==p->data)
26         break;
27         L=p;
28         p=p->next;    
29     }
30         L->next=p->next;
31         free(p);
32 }
33 
34 void insert(slist *L,int n,int x){                        //插入 
35     slist *p,*s=L;
36     p=(slist*)malloc(sizeof(slist));
37     while(p!=NULL)
38     {
39         if(x==s->data)
40         break;
41         L=s;
42         s=s->next;    
43     }
44         p->data=n;
45         p->next=s->next;
46         L->next=p;
47 }
48 
49 void destroy(slist *L){                                //销毁 
50     slist *pre=L,*p=L->next;
51     while(p!=NULL)
52     {
53         free(pre);
54         pre=p;
55         p=p->next;
56     }
57         free(pre);
58 }
59 
60 void print(slist *L){                                    //输出 
61     slist *p;
62     while(p!=NULL)
63     {
64         scanf("%d",p->data);
65         p=p->next;
66     }
67 }
68 
69 int Length(slist *L){                                        //链表长 
70     int n;
71     slist *p=L;
72     while(L!=NULL){
73         n++;
74         p=p->next;
75     }
76         return n;
77 }
78 
79 void insertlast(slist *L,int a[],int n){                            //尾插 
80     slist *p;
81     int i;
82     for(i=0;i<n;i++)
83     {
84         p=(slist*)maloc(sizeof(slist));
85         p->data=a[i];
86         L->next=p;
87         L=p;
88         
89     }
90 }

 

posted @ 2019-05-23 00:56  18软工8班段诗媛  阅读(75)  评论(0编辑  收藏  举报