ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:51.64KB ,
资源ID:9420001      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9420001.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计指导书.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计指导书.docx

1、数据结构课程设计指导书2008年数据结构课程设计指导书一、课程设计的基本要求和方法1. 课程设计题目要求从程序调试类题目和程序编写类题目中各选其一,多选不限。2. 课程设计资料应装入学校统一的课程设计专用资料袋中,资料袋封面应填写完整,课程设计的全部纸质文档资料应装入课程设计资料袋中。3. 应提交的资料包括:(1) 纸质的课程设计报告1份纸质文档(报告封面见附件1,内容见附件2);(2) 将源程序、课程设计报告、课程设计心得的电子文档按规定的文件名称和格式放在自己学号所建的文件夹下,并拷贝到指导教师指定的文件夹中。文件夹和文件的命名规范为:班级+姓名+学号,例如071张三20071002001

2、。4. 课程设计说明书应包括封面、目录、正文和参考文献等部分,一律用A4纸张打印,侧面装订,正文用5号宋体。5. 学生课程设计资料的质量由学生保证,由指导教师验收。6. 发现课程设计报告基本雷同情况,一律不及格。二、课程设计说明书撰写应包括的内容1、对自己此次课程设计进行概述(包括该次课程设计自己所做的题目,所用的编程工具等)2、课程设计题目一(包括问题描述;需求分析(基本要求)、设计(概要设计(所用函数及说明)、所用数据结构及存储结构、算法思想、关键函数的流程图)、实现(源程序清单及注释);调试分析;运行结果分析)3、课程设计题目二(包括问题描述;需求分析(基本要求)、设计(概要设计(所用函

3、数及说明)、所用数据结构及存储结构、算法思想、关键函数的流程图)、实现(源程序清单及注释);运行结果分析)4、参考文献(至少三项,格式按照科技论文的参考文献格式)三、数据结构课程设计题目()程序调试类题目1、单链表的基本操作 程序清单:#include stdio.h#include alloc.htypedef struct lnode char value; struct lnode * link; llistnode;llistnode *creat( ) llistnode *head , *p; char ch; head = malloc(sizeof(llistnode); he

4、ad-link=NULL; printf(input:); while( (ch=getchar( )!=n) p=malloc(sizeof(llistnode); p-value = ch; p-link=head-link; head-link = p; printf(input:); return head;void print(llistnode *head) llistnode *p; printf(n); p = head-link; while(p) printf(%c,p-value); p=p-link; llistnode *visitll(llistnode *h ,

5、char x) llistnode *p; p = h; while(p-value!=x)&(p!=NULL) p = p-link; return(p);llistnode *predall(llistnode *h , llistnode *q) llistnode *p; if(q = = h ) p=NULL; else p = h; while(p-link!=q)&(p!=NULL) p=p-link; return(p); void insertll(llistnode *h , llistnode *q , char x ) llistnode *p , *r ; r = (

6、llistnode *)malloc(sizeof(llistnode); r-value = x; if(h= =q) h = r; else p = predall(h , q); p-link = r; r-link = q; void deletell(llistnode *h , llistnode *q) llistnode *p; if (h=q) h = q-link; else p=predall(h,q); p-link= q-link; free(q);main( ) llistnode *a; llistnode *result=NULL; int choice ; c

7、har data,data_cz; a = creat( ); while(1) printf(n以下是单链表的应用,请选择:); printf(n1、遍历链表并依次输出其的结点值); printf(n2、在链表中查找是否存在某结点); printf(n3、在链表中查找某结点的前驱); printf(n4、在链表中查找某结点的后继); printf(n5、在链表中插入结点); printf(n6、在链表中删除结点); printf(n7、退出); scanf(%d,&choice);switch(choice) case 1: print(a); break; case 2: getchar(

8、 ); printf(请输入待查结点的值:); data = getchar( ); result = visitll(a,data); if (result!=NULL) printf(%c在链表中,data); else printf(%c不在链表中,data); result = NULL; break;case 3: getchar(); printf(请输入待查结点的值:); data = getchar( ); result = visitll(a,data); if (result = = NULL) printf(%c不在链表中,data); break; result = p

9、redall(a,result); if (result!=NULL) printf(%c的前驱是%c,data,result-value); else printf(%c没有前驱,data); result = NULL; break;case 4: getchar(); printf(请输入待查结点的值:); data = getchar( ); result = visitll(a,data); if (result = NULL) printf(%c不在链表中,data); break; if (result-link!=NULL) printf(%c的后继是%c,data,resul

10、t-link-value); else printf(%c没有后继,data); result = NULL; break;case 5: getchar(); printf(请输入待插结点的值:); data = getchar( ); getchar(); printf(请输入插入在哪个结点前面:); data_cz=getchar( ); result = visitll(a,data_cz); if (result = NULL) printf(%c不在链表中,data); break; insertll(a , result , data); break;case 6: getcha

11、r( ); printf(请输入待删除结点的值:); data = getchar( ); result = visitll(a,data); if (result = = NULL) printf(%c不在链表中,data); break; deletell(a , result); break;case 7: break;defalut: break; if (choice = = 7 ) break; 要求及提示:1、 要求写出每一个函数的功能。2、 (选作)若现在要建立的链表为双向链表,则程序应如何修改,试实现之。2.用数组实现两个矩阵的相乘运算 程序结构: #include “std

12、io.h” int r66; void mult(int a66 , int b66) main() int i,j; int num166,num266; printf(“请输入第一个矩阵的值:”,); for(i=1;i=6;i+) for(j=1;j=6;j+) scanf(“%d”,&num1ij); printf(“请输入第二个矩阵的值:”,); for(i=1;i=6;i+) for(j=1;j=6;j+) scanf(“%d”,&num2ij); mult(num1,num2); printf(“n两个矩阵相乘后的结果为:”); for(i=1;i=6;i+) for(j=1;j

13、front = q-rear=0; q-count = 0;int qempty(cirq *q) return q-count = =0;void enq(cirq *q , blink x) q-count +; q-dataq-rear = x ; q-rear = (q-rear + 1)%qsize ; blink deq(cirq *q) blink temp; temp = q-dataq-front; q-count -; q-front = (q-front+1)%qsize; return trmp;blink creat( ) blink bt; char ch; ch

14、= getchar( ); if(ch!=# ) bt = malloc(sizeof(bnode); bt-data = ch; bt-lchild = creat( ); bt-rchild = create( ); else bt = NULL; return bt ; void level(blink bt) blink p; p = bt; init(q); if(p) printf(“%c”,p-data); enq(q,p); while(!qempty(q) p=deq(q); if(q-lchild) printf(“%c”,p-lchild-data); emq(q,p-l

15、child); if(q-rchild) printf(“%c”,p-rchild-data); emq(q,p-rchild);main() blink root;root = creat( );printf(“n”);level(root);printf(“n”);4、快速排序 程序清单: #include “stdio.h” #define max 100 int rmax; void quicksortL(int r ,int s , int t ) int i,j; i = s; j = t; r0= rs; while(ij) while(r0=rj)&(ij) j-; if(i=

16、ri)&(ij) i+; if(ij) rj=ri; j-; ri=r0; if(si+1) quicksortL(r,i+1,t);main( ) int i,n;printf(“请输入待排序元素的个数(少于100个):);scanf(“%d”,&n);for( i = 1 ; i = n ; i+) printf(“请输入第%d个元素”,i); scanf(“%d”,&ri); quicksortL(r,1,n);printf(“排序结束后为:n”);for(i=1;i=n;i+)printf(“%4d”,ri);要求及提示:1、 对12、34、13、6、79、10、56用上述算法进行快速

17、排序,写出运行结果。2、 写出12、34、13、6、79、10、56用上述算法进行的第一趟快速排序后的结果。5.堆排序程序结构:#include “stdio.h”#define max 100int rmax;void sift(int r , int i, int h) int j; r0 = ri; j = 2 * i; while(j = h) if(jrj+1) j+; if(r0rj) ri=rj; i = j; j=2 * i; else break; ri=r0;void heapsortL(int r ,int n) int m , i; m = n/2; for(i=m;i

18、=1;i-) sift( r , i , n); for(I = n ; i=1 ; i-) r0=r1;r1=ri;ri=r0; sift(r,1,i-1); main( ) int i , n;printf(“请输入排序元素的个数(少于100个):”);scanf(“%d”,&n);for( i = 1 ; i = n ; i+) printf(“请输入第%d个元素”,i); scanf(“%d”,&ri); heapsortL( r , n );printf(“排序结束后为:n”);for(i=1; idata= ch;bt-lchild = creat(); bt-rchile= cr

19、eat(); else bt = NULL; return bt;void preorder(blink bt) if(bt) printf(“%c”,bt-data); preorder(bt-lchild); preorder(bt-rchild); void inorder(blink bt) if(bt) inorder(bt-lchild); prnitf(“%c”,bt-data); inorder(bt-rchild); void postorder(blink bt) if (bt) postorder(bt-lchild); postorder(bt-rchild); pri

20、ntf(“%c”,bt-data); int max(int x , int y) if(xy) return x; else return y; int depth(blink bt) if(bt) retur 1+max(depth(bt-lchild),depth(bt-rchild); else return 0; main() blink root; root=creat( ); printf(“n”); printf(“先序遍历结果:”); preorder(root); printf(“n”); printf(”中序遍历结果:”); inorder(root); printf(“

21、n”); printf(“后序遍历结果:”); postorder(root); printf(“n”); printf(“depth=%dn”,depth(root); 7、无向图的建立及遍历操作 程序清单: #include “stdio.h” #include “alloc.h” typedef struct node int adjvex; struct node *next; edgenode; tyedef struct vnode int vertex; edgenode *firstedge; vertexnode; typedef vertexnode adjlist10;

22、typedef struct adjlist al; int n,e; graph; graph *g; int visited10; graph *creat( ) int i ,j,k; edgenode *s; scanf(“%d%d”,&g-n,&g-e); for(i=1;in;i+) g-ali.firstedge = NULL; for(i=1;ke;k+) scanf(“%d%d”,&i,&j); s= malloc(sizeof(edgenode); s-adjvex= j; s-next = g-ali.firstedge; g-ali.firstedge=s; s= ma

23、lloc(sizeof(edgenode); s-adjvex=i; s-next = g-alj.firstedge; g-alj.firstedge= s; return g;void dfs(graph *g , int i) edgenode *p; printf(“visit vertext:%dn”,i); visitedi=1; p=g-ali.firstedge; while(p) if(!visitedp-adjvex; dfs(g,p-adjvex); p=p-next; main( ) int i; graph *g; g = creat( ); for(i=1;in;i

24、+) visitedi=0; for(i=1;in;i+)if(!visitedi) dfs(g , i); 要求及提示: 1、 对于上图无向图的建立,应输入: 4 41 21 32 32 42、 上图建立的邻接表为 1(二)程序编写类题目1.迷宫问题问题描述 以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。基本要求(1) 实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。(2) 编写递归形式的算法,求得迷宫中所有可能的通路;(3)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1