1、数据结构课程设计报告 题目一: 停车场管理 题目 二 : 单链表实现集合的交并差运算 班级: 06 级计算机专升本二班 姓名: 学号: 指导教师: 完成日期: 2007 年 7 月 20 日 题目一:停车场管理 一、 需求分析 1、用户输入数据:第一个数为汽车到达或离去的信息,第二个数为汽车的牌照号,第三个数为到达或离去的时刻; 2、一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的位置;若是车辆离去,则输出汽车在停车厂内停留的时 间和应缴纳的费用(在便道上停留的时间不收费)。 二、设计内容 ( 1)概要设计 1、设定抽象数据类型定义: ADT List 数据对象
2、:构造一个空的线性表 l 数据关系: R1= | ai-1,ai l,i=2,3 ,n 2本程序包含二个模块 主程序模块: main() 初始化; 调用函数; 线性模块 实现线性抽象数据类型 ( 2)详细设计 #include #include #include #define A 1 #define D 2 #define E 3 int cars163; 主函数模块: void main(void) int n; char x; mainloop: clrscr(); printf(“ting che chang :n“); for(n=0;n“,t-data); t = t-next;
3、while(t != null); printf(“n“); void insert(LinkList *L,int n,ElemType x) 向链表中插入元素 LinkList t1,t2; int j = 1; t1 = (struct Lnode *)malloc(sizeof(struct Lnode); t1-data = x; t2 = *L; if (n = 1) t1-next = t2; *L = t1; else while (j next!=null) t2 = t2-next; j+; if (j = n-1) t1-next = t2-next; t2-next =
4、 t1; else printf(“Insert error!“); void delete(LinkList *L,int n) 删除指定位置的节点 int i = 1; LinkList t1, t2; t1 = *L; if (n = 1) t2 = t1; *L = t1-next; else while (i next != null) t1 = t1-next; i+; if (t1-next != null t1-next = t2-next; else printf(“Delete error!n“); if (t2 = null) free(t2); void init(st
5、ruct Lnode *L,int len) 初始化链表 int dM,i,j,k,ti; / struct Lnode *t; input: for (i = 1; i dk) ti = dj; dj = dk; dk = ti; for (i = 1; i len; i+) if (di = di+1) printf(“Dont allow the same data! Please reinput!“); goto input; creat( for (i = 1; i = len; i+) insert( printf(“The data of the linktable is: “); display( void copy(struct Lnode *L1,struct Lnode *L2 ) 复制链表 L1 到 L2 int i,len; ElemType t; len = lenth( creat( for (i = 1; i = len; i+) t = get( insert( void intersection(struct Lnode *L1,struct Lnode *L2,struct Lnode *L3) 求交集 int i, j, k = 1; struct Lnode *t1,*t2; t1 = *L1; t2 = *L2; creat(