信息管理与信息系统专业数据结构实验报告.doc

上传人:文****钱 文档编号:1140943 上传时间:2018-12-13 格式:DOC 页数:23 大小:244.50KB
下载 相关 举报
信息管理与信息系统专业数据结构实验报告.doc_第1页
第1页 / 共23页
信息管理与信息系统专业数据结构实验报告.doc_第2页
第2页 / 共23页
信息管理与信息系统专业数据结构实验报告.doc_第3页
第3页 / 共23页
信息管理与信息系统专业数据结构实验报告.doc_第4页
第4页 / 共23页
信息管理与信息系统专业数据结构实验报告.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、 实验一 线性表题目:线性表链式存储结构下基本操作的实现(初始化、赋值、取值、插入、删除、归并等) 。程序清单:#include#define listinitsize 20#define listincrement 10typedef structint *elem;int length;int listsize;sqlist;main()void initlist(sqlist *L);void add(sqlist *La,sqlist *Lb,sqlist *Lc);sqlist *La,*Lb,*Lc;int i,p,num;initlist(La);initlist(Lb);ini

2、tlist(Lc);printf(“please input the numbers of you want about La:n“);scanf(“%d“,printf(“n“);for(i=0;ielemi=p;La-length+;printf(“please input the numbers of you want about Lb:n“);scanf(“%d“,printf(“n“); for(i=0;ielemi=p;Lb-length+;printf(“nnnnthe list of La:n“);for(i=0;ilength;i+)printf(“%6d“,La-elemi

3、);printf(“nnnnthe list of La:n“);for(i=0;ilength;i+)printf(“%6d“,Lb-elemi);printf(“nnn“);add(La,Lb,Lc);printf(“nnnthe list of Lc:n“);for(i=0;ilength+Lb-length;i+)printf(“%6d“,Lc-elemi);getch();void add(sqlist *La,sqlist *Lb,sqlist *Lc)int *pa,*pb,*pc,*pa_last,*pb_last;pa=La-elem;pb=Lb-elem;Lc-listsi

4、ze=Lc-length=La-length+Lb-length;pc=Lc-elem=(int*)malloc(Lc-listsize)*sizeof(int);pa_last=La-elem+(La-length-1);pb_last=Lb-elem+(Lb-length-1);while(pa*pb_last)*pc+=*pb_last-;else*pc=*pa_last;pc+;pa_last-;pb_last-;while(paelem=(int*)malloc(listinitsize*sizeof(int);L-length=0;L-listsize=listinitsize;调

5、试报告:1、调试中遇到的问题及解决方法调试程序时,因为没有注意到指针变量与普通变量对成员的引用所用符号不同,将指针变量引用所用符号写成. ,导致程序出现大量错误,耽误了大量的调试时间。警告 shunxu1.c 18: 可能在La定义以前使用了它在 main 函数中,将La放在 main 前即可消除警告。注意定义各线性表变量为指针变量,这样可以返回函数。二、测试结果1、键入数值2、输出结果3、 键入任意字符,退出演示界面,回到编辑状态。3、经验及体会1. 程序采用逐个输入的方法创建 La,Lb,在元素较多时,会使得程序很庞大,不利于检查错误等。2. 本次实验采用数据抽象的程序设计方法,将程序化为

6、三层次结构,设计时思路清晰,使调试也较顺利,各模块有较好的可重用性。3. 进入演示程序后,按规定输入数值后便可看到结果,按任意键退出。实验二 栈和队列题目:栈的基本操作的实现(初始化、赋值、取值、插入、删除等)【基本要求】要求分别采用顺序和链式存储结构。 程序清单:#include #include #include # define STACK_INIT_SIZE 100# define STACKINCREMENT 10# define OK 1# define ERROR 0#define OVERFLOW 0typedef int SElemType;/定义 SElemType 为 i

7、nt 类型/栈类型定义typedef struct SqStack SElemType *base;SElemType *top;int stacksize;SqStack;char aSTACK_INIT_SIZE+STACKINCREMENT;/设计相关函数声明:int IsReverse(SqStack /判断是否是回文int InitStack(SqStack /栈初始化int Push(SqStack /进栈int Pop(SqStack /出栈int StackEmpty(SqStack /判断是否为空栈int i=0;/栈的长度void main()SqStack q;InitS

8、tack(q);char m;coutm ai=m;i+;if (StackEmpty(q)=0)cout=s.stacksize)s.base=(SElemType*)realloc(s.base,(s.stacksize+STACKINCREMENT)*sizeof(SElemType);if(!s.base) exit(OVERFLOW); /储存分配失败s.top=s.base+s.stacksize;/s.stacksize+=STACKINCREMENT;*s.top+=e;return OK;int Pop(SqStack e=*-s.top;return OK;int Stac

9、kEmpty(SqStack else return OK;int IsReverse(SqStack char b; for(j=0;j#include #define OVERFLOW 0#define OK 1#define ERROR 0typedef struct BiTNode char data;struct BiTNode *lchild,*rchild;BiTNode,*BiTree;BiTree CreateBiTree(BiTree T)scanf(“%c“,if(e= ) T=NULL;else if(!(T=(BiTNode *)malloc(sizeof(BiTNo

10、de)exit(OVERFLOW);T-data=e;T-lchild=CreateBiTree(T-lchild);T-rchild=CreateBiTree(T-rchild);return T; /*前序遍历*/char PreOrderTraverse(BiTree T,char (* Visit)(char e)if(T)if(Visit(T-data)if(PreOrderTraverse(T-lchild,Visit)if(PreOrderTraverse(T-rchild,Visit) return OK;return ERROR;else return OK;char Vis

11、it(char e)printf(“%5c“,e);return OK;main()printf(“请输入一颗二叉树,按回车结束:n“);T=CreateBiTree(T);printf(“先序遍历的结果:“);PreOrderTraverse(T,Visit);调试报告:一、调试记录二、调试中遇到的问题及解决方法在调这个程序是并没有遇到很大的困难,就是在输入一颗二叉树时,遇到了一点麻烦。输入时并不是随便乱输,输入的数据必须可以组成一颗二叉树才能才行。试了很久才弄清这个问题,解决这个问题后,程序就基本上没有什么问题了。3、经验及体会“熟能生巧” ,只有多加练习,才能准确编出程序。实验四 图题目

12、:建立图的邻接矩阵,并且进行图的广度优先遍历。程序清单:#include#include#define max 100 typedef struct /以下定义临接矩阵类型int number; int info; VertexType; typedef struct /图的定义int edgesmaxmax;int n,e;VertexType vexsmax; MGraph;/定义邻接表类型typedef struct ANode int adjvex; struct ANode *nextarc; /指向下一条弧的指针int info; /存放弧的信息(权值)ArcNode;typedef struct Vnode

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 案例作文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。