链表笔记一
来源:互联网 发布:天谕玉虚捏脸数据下载 编辑:程序博客网 时间:2024/06/15 13:16
链表搞了两个星期,说实话让我不用模板我还真写不来创建链表结构体typedef struct library List;typedef struct library Position;struct library{ int offical_number; char book_name[100]; int book_num; List *next;};链表创建List *head, *p, *tail;head = (List*)malloc(sizeof(List));head->next = NULL;puts(" 输入的图书序号为'-1'时,则输入结束");p = head;while (1){ tail = (List*)malloc(sizeof(List)); cin >> tail->offical_number; getchar(); if (tail->offical_number == -1) break; cin >> tail->book_name >> tail->book_num; p->next = tail; p = tail;}p->next = NULL;return head;}链表删除void delete1(){ puts(" please intput position"); int pos; cin >> pos; Position *P = Findnum(pos); List *L = Head; if (P == false) { puts(" Delete error,please intput right position"); return; } if (L == NULL || pos == NULL) { puts(" Delete error,please intput right position"); return; } else { if (P == L) { L->book_num--; if (!L->book_num) { L = L->next; Head = L; } puts(" Delete success"); return; } else { while (L->next != NULL&&L->next != P) L = L->next; if (L->next != P) { puts(" Delete error,please intput right position"); return; } else { L->next->book_num--; if (!L->next->book_num) { L->next = L->next->next; } puts(" Delete success"); } } }}链表排序void Sort_offical_num(){ List *p, *q, *min; for (p = Head; p != NULL; p = p->next) { min = p; for (q = p->next; q != NULL; q = q->next) { if (q->offical_number < min->offical_number) { min = q; } } if (min != p) { swap_num(min->book_num, p->book_num); swap_num(min->offical_number, p->offical_number); swap_char(min->book_name, p->book_name); } } puts(" 排序成功");}链表查找Position *Findnum(int x){ Position *L = Head; if (L == NULL) return false; else { while (L) { if (L->offical_number == x) return L ; L = L->next; } } return false;}链表插入bool Insert(List L, ElementType X, Position P)//:将X插入在位置P指向的结点之前,返回true。如果参数P指向非法位置,则打印“Wrong Position for Insertion”,返回false;{ List F = L; while (L->Next) { if (L->Next == P)break; L = L->Next; } if (L->Next != P) { printf("Wrong Position for Insertion\n"); return false; } L->Next = (List)malloc(sizeof(struct LNode)); L->Next->Data = X; L->Next->Next = P; return true;}
阅读全文
0 0
- 链表笔记一
- 链表笔记一
- 笔记一循环链表
- 链表学习笔记(一)
- 数据结构笔记一 线性表
- 表空间学习笔记(一)
- C++ STL--list双向链表容器学习笔记一
- 单链表学习笔记一 学生信息动态链表
- 笔记一
- 笔记一
- 笔记一
- 笔记一
- 笔记一
- 笔记一
- 笔记一
- 笔记一
- 笔记一
- 笔记一
- python正则
- Emscripten教程之入门指导
- 基础(printf 的用法 && 结构体重载运算符)
- Java I/O —— File类
- 剑指Offer------把二叉树打印成多行(层序遍历)
- 链表笔记一
- 习题3
- 1.1股票数据预处理练习
- C#225课的主要内容
- 8. String to Integer (atoi)
- 编写代码模拟三次密码输入
- String和StringBuffer的区别
- 链表排序--归并排序
- 如何搭建hustoj