c数据结构-第二讲.单链表
#includestdio.h #includestdlib.h typedef struct node//便于程序理解 { int data; struct node* next; }node,*linklist; linklist initlist()//看成头结点 { linklist head (linklist)malloc(sizeof(node)); head-next nullptr; return head; } linklist Head_insert(linklist l, int k) { node* s (node*)malloc(sizeof(node)); s-data k; s-next l-next; l-next s; return l; } linklist rear_insert(linklist l, int k) { node* s (node*)malloc(sizeof(node)); s-data k; node* p l; while (p-next ! NULL) { p p-next; } s-next p-next; p-next s; return l; } node* find(linklist l, int x) { node* p l-next; while (p ! NULL p-data ! x) p p-next; return p; } linklist insert(linklist l, int x,int k) { node* s (node*)malloc(sizeof(node)); s-data k; node* p find(l,x); if (p NULL) { printf(不存在无法插入\n); } else { s-next p-next; p-next s; } return l; } linklist deletea(linklist l, int k) { node* p l-next; node* q l; while (p!NULLp-data ! k) { p p-next; q q-next; } if (p NULL) { printf(不纯正); } else { q-next p-next; free(p); p NULL; } } int main() { linklist l nullptr;//更合理更高效 l initlist(); return 0; }优点灵活 插入删除比顺序表快缺点难以随机访问