链表

 进入了大二,也刚好是开了数据结构这门课,虽然大一也接触过一些数据结构,但还是对很多都不怎么懂,有些懂了也不知道怎么实现。

今天在课上看了关于链表的一些东西,理解了,然后之后就回寝室写了这个链表

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 
 5 struct note{
 6     int x;
 7     note *next;
 8 };
 9 
10 typedef struct note *parToNote;
11 typedef parToNote List;
12 typedef parToNote position;
13 
14 List MakeEmpty(List L);
15 int IsEmpty(List L);
16 position Find(int x,List L);
17 void Delete(int x,List L );
18 void Insert(int x,List L,position p);
19 void DeleteList(List L);
20 position FindPervious(int x,List L);    //这个是找x的前驱节点,用于删除。
21 bool Islast(List L);
22 
23 int IsEmpty(List L)
24 {
25     return L->next==NULL;
26 }
27 
28 List MakeEmpty(List L)
29 {
30     position p , tmp;
31     p = L->next;
32     free(L);
33     while(p!=NULL)
34     {
35         tmp = p->next;
36         free(p);
37         p = tmp;
38     }
39 }
40 
41 position Find(int x, List L)
42 {
43     position p;
44     p = L;
45     while(p!=NULL&&p->x != x)
46         p = p->next;
47     return p;
48 }
49 
50 position FindPervious(int x,List L)
51 {
52     position p;
53     p = L->next;
54     while(p!=NULL&&p->next->x != x )   //这个和Find的区别就在一个是找出当前节点,一个是找出前驱节点。
55         p = p -> next;
56     return p;
57 }
58 bool Islast(List L)
59 {
60     return L->next==NULL;
61 }
62 void Delete(int x,List L)
63 {
64     position tmp,p;
65     p = FindPervious(x,L);
66     if(!Islast(p))    //当p时最后一个节点时,也就是说明x根本就不在链表中,也就没必要删除。
67     {
68         tmp = p -> next;
69         p ->next = tmp -> next;
70         free(tmp);
71     }
72 }
73 
74 void Insert(int x,List L,position p)
75 {
76     position tmp;
77     tmp = (position)malloc( sizeof( struct note ) );
78     if(tmp == NULL)
79         printf("out of space
");
80     tmp->x = x;
81     tmp -> next = p->next;
82     p->next = tmp;
83 }
84 
85 void MakeEmpty(List L)
86 {
87     position p,tmp;
88     p = L->next;
89     L->next = NULL;
90     while(p==NULL)
91     {
92         tmp = p->next;
93         free(p);
94         p = tmp;
95     }
96 }
原文地址:https://www.cnblogs.com/Tree-dream/p/5857341.html