文档详情

宿舍管理系统 链表 C语言 C++ 数据结构 链表 课程设计(Dormitory management system list, C language, C++ data structure, linked list curriculum design).doc

发布:2017-07-23约字共18页下载文档
文本预览下载声明
宿舍管理系统 链表 C语言 C++ 数据结构 链表 课程设计(Dormitory management system list, C language, C++ data structure, linked list curriculum design) # stdio.h in # stdlib.h in # string.h in # conio.h in / * 采用双向链表结构, 方便添加删除和排序 * / typedef struct node {/ * 定义结构体类型dnode * / long id; / * 楼号和房间号, 因为一个楼号加一个房间号才能唯一定位一个房间, 前两个字节存楼号, 后两个字节存房间号 * / int); / * 面积 * / int max 所容纳人数; / * * / int current 已入住人数; / * * / struct node * prior, * next; / * 前驱和后继指针 * / } dnode; dnode * head = null; void output _ one (dnode * n) / * 输出一条记录 * / { int lou; int room; room = n - id 0xffff; lou = n - id 16; printf (% d% d \ t \ t% d% d t \ t% d , lou, room, n - area, n - max, n - current); } void output (输出所有记录) / * * / { dnode * pos = head; if (head = = null) { printf (no record); return; } printf (lou troom \ tarea \ tmax \ tcurrent \ n ); while (pos) { the output _ one (pos); / * 循环调用output _ one * / pos = pos - next; } } void sort () { int max = 0,; dnode * pos = head; if (head = = null) { printf (no record); return; } while (pos) { if (pos - , max) max = pos - current; pos = pos - next; } printf (lou troom \ tarea \ tmax \ tcurrent \ n ); for (i = max; i = 0; i --) { pos = head; while (pos) { if (pos - current = = i) the output _ one (pos); / * 循环调用output _ one * / pos = pos - next; } } } int insert () / * 插入一条数据 * / { int lou; int room; long loul; dnode * pos = head; dnode * n = malloc (sizeof (dnode)); n - prior = null; n - next = null; / / 楼号、房间号、面积、所容纳人数、已入住人数 printf (building:); scanf (% d lou); printf (room); scanf (% d, room); printf (the area); scanf (% d, n - area); printf (max); scanf (% d, n - max); printf (current); scanf (% d, n - current); loul = lou; loul = loul 16; n - id = loul + room; if (head = = null) / * 如果还没有头节点, 就作为头节点 * / { head = n; return 1; } while (pos) { if (pos - id n - id) / * 按顺序查找, 如果找到比自己大的, 就插在它前面 * / { if (pos - prior) pos - prior - next = n; n - prior = pos - prior; pos - prior = n; if (pos - next) pos - next - prior = n; n
显示全部
相似文档