数据结构实验报告

上传人:汽*** 文档编号:496662710 上传时间:2024-01-20 格式:DOCX 页数:35 大小:165.40KB
返回 下载 相关 举报
数据结构实验报告_第1页
第1页 / 共35页
数据结构实验报告_第2页
第2页 / 共35页
数据结构实验报告_第3页
第3页 / 共35页
数据结构实验报告_第4页
第4页 / 共35页
数据结构实验报告_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《数据结构实验报告》由会员分享,可在线阅读,更多相关《数据结构实验报告(35页珍藏版)》请在金锄头文库上搜索。

1、Ms数据结构实验姓名:wangqiang学号:实验名称线性表的应用1.熟练掌握线性表的基本操作在顺序存储和链式存储上的实现;2.以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;3.掌握线性表的动态分配顺序存储结构的定义和基本实现;:K:4.通过对本章实验帮助学生加深对C语言的使用(特别是函数参数调用、指 针类型的应用和链表的建立等各种基本操作)5. 要求用顺序表和链表分别实现约瑟夫问题;6. 独立完成,严禁抄袭;7. 上交的实验报告由如下部分组成:实验名称实验目的实验内容(问题 描述,算法描述,程序清单,测试结果,算法分析)。8.。1线性表的应用#includevstdio h#i

2、ncludestdlib.htypedef struct no deint value;struct node *n ext;NODE;NODE *createli nk(i nt n)NODE *head=NULL,*p=NULL,*q=NULL;head=p=(struct no de*)malloc(sizeof(struct no de); p-value=i;for(i=2;iv=n ;i+)q=(struct no de*)malloc(sizeof(struct no de);if(q=O) return 0;p_n ext=q;p=q;p-value=i;p-n ext=hea

3、d;return head;void jose(NODE *p,int n,int m)int i,j,g=0;NODE *q=NULL;for(i=1;i=n ;i+)for(j=1;jn ext;q=p-n ext;p-n ext=q-n ext;if(g%5=0)g+;pri ntf(n);else g+;pri ntf(%3d:%3dout ,i,q-value-1);free(q);pri ntf(n);int mai n( )int m=0;int n=0;sea nf(%d,&m);sea nf(%d,&n);NODE *head=NULL; head=createli nk(n

4、); jose(head ,n, m);return0;实验一-Mier实验i - Mier2栈和队列的应用实验名称栈和列队的应用实 验 目 的 及 要 求1. 熟练掌握栈和列队的结构,以及这两种数据结构的特点;2. 能够在两种存储结构上实现栈的基本运算,特别注意栈满和栈空时的判断条 件和描述方法;3. 熟练掌握链队列和循环列表的基本运算,特别注意队列满和队列空时的判断 条件和描述方法。4. 要求用栈实现表达式求值问题;5. 独立完成,严禁抄袭;6. 上交的实验报告由如下部分组成:实验名称实验目的实验内容(问题 描述,算法描述,程序清单,测试结果,算法分析)。实 验 内 容表达式求值的实现:输

5、入一个包含正整数和圆括号的合法表达式,确定括号是 否配对正确1 括号的配对;#includestdio.h#includestring.h#includestdlib.h#define Stacksize 100/假定预分配的栈空间最多为100个元素#define MaxLength 100/最大的字符串长度typedefint DataType; /假定栈元素的数据类型为整数 typedefstructDataType dataStackSize;int top;SeqStack;void Initial(SeqStack*S);int IsEmpty(SeqStack*S);int IsF

6、ull(SeqStack*S);void Push(SeqStack*S, DataType x);DataType Pop(SeqStack*S);DataType Top(SeqStack*S);void PrintMatchedPairs(char *expr);void main(void)char exprMaxLength;printf 请输入符号个数小于d的表达式:n,MaxLength);gets(expr);printf括号对是:n);PrintMatchedPairs(expr);return;/置栈空void Initial(SeqStack*S)S- top= 1;/判

7、断栈是否空int IsEmpty(SeqStack*S)return S- top= -1;/判断栈是否满int IsFull(SeqStack*S)return S- top= StackSize-1;/进栈void Push(SeqStack*S, DataType x)if(IsFull(S)printf栈上溢!”); exitl);S- data+ S- top= x;return;/出栈DataType Pop(SeqStack*S)if(IsEmpty(S)printf栈为空! ”);return -1;return S- dataS- top-;/栈顶指针加1 后将 x 入栈/取

8、栈顶元素DataType Top(SeqStack*S)if(IsEmpty(S)printf栈为空! ”); exit1);return S- dataS- top;| c: *C: YDocuBents and Sett ingsAdinist rator桌面、新建文杵夹数据结构Debug.请输入一串括号回车键结束:0 () 【】【】()()【】【()()】括号配对正确Game OuerPress any key to continueI趟為扭立半.a -r 开始益瞻驚H:陈廷文谶命C:DocwnenW帥实验二-町c.尅/括号匹配void PrintMatchedPairs(char *e

9、xpr)SeqStack S;int i , j , length= strlen(expr);Initial(&S);for(i= 1 ; i= length ; i+)if(expri- 1=()Push(&S,i);else if(expri- 1=)j= Pop(&S);if(j= -1) prin 没有对应第d个右括号的左括号n, i);else prin %d %dn,i,j);while(!IsEmpty(&S)j= Pop( &S); printf没有对应第d个左括号的右括号n, j);3数组的应用实验名称数组的应用实 验 目 的 及 要 求1. 掌握数组的两种存储表示方法;2

10、. 掌握对特殊矩阵进行压缩存储时的下标变换公式;3. 掌握稀疏矩阵的两种压缩存储方法的特点和适用范围。4. 已知某一稀疏矩阵的三元顺序表,由其直接得到其转置矩阵的三元顺序表;5. 独立完成,严禁抄袭;6. 上交的实验报告由如下部分组成:实验名称实验目的实验内容(问 题描述,算法描述,程序清单,测试结果,算法分析)。实 验 内 容稀疏矩阵转置的实现:用三元组顺序表做存储结构,实现稀疏矩阵的转置。#include#includeSturct tuple3tp/*稀疏矩阵的建立和转置*/Int i,j;Int v;Sturct sparmattpInt mu, nu,tu;Sturct tuple3

11、tp data31;Struct sparmattp a,b;Void crt_sparmat()Int i;Printf(”输入稀疏矩阵行值,列值,最大非零元个数:”);Scanf(%d%d%d,&a.mu,&a.nu,&a.tu);For(i=1;i=a.tu;i+)Printf(输入行坐标,列坐标,非零元);Scanf(%d%d%d,&a.datai.i,&a.datai.j,&a.datai.v); Void trans_sparmat()Int col,p,q;B.mu=a.nu;B.nu=a.mu;B.tu=a.tu;If(b.tu!=0) Q=1;For(col=1;col=a.

12、nu;col+)For(p=1;p=a.tu;p+) if(a.datap.j=col)B.dataq.i=a.datap.j;B.dataq.j=a.datap.i;B.dataq.v=a.datap.v;Q+;Out(struct sparmattp x)Int i,j,k,flag;For(i=1;i=x.mu;i+)For(j=1;j=x.nu;j+)Flag=0;For(k=1;k=x.tu;k+)If(x.datak.i)=i)&(x.datak.j)=j)Flag=1;Printf(%5d,x.datak.v);If(flag=0)printf( 0);Printf(n);Mai

13、n( )Printf(稀疏矩阵的建立与转置n);Crt_sparmat();Trans_sparmat();Printf(” 原矩阵为:n);Out(a);Printf(”转置矩阵为:n);Out(b);4数和二叉树的应用实验名称树和二叉树的应用1.熟练掌握树的基本概念、二叉树的基本操作及在链式存储结构上的实现;实2.重点掌握二叉树的生成、遍历及求深度等算法;验3.掌握哈夫曼树的含义及其应用;目4.掌握运用递归方式描述算法及编写递归C程序的方法,提高算法分析和程序的设计能力。及5.上交实验报告。要6.独立完成,严禁抄袭。要7.实验报告由如下部分组成:实验名称实验目的实验内容(问题描述,求算法描述,程序清单,测试结果,算法分析)。实二叉树采用二叉链表作

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

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号