数据结构实验报告(数据结构实训报告怎么写)

求一份关于数据结构的实验报告

#include"malloc.h"#include"stdio.h"

#defineerror0#defineok1#definetrue1#definefalse0

typedefintstatus;typedefstructsnode{intdata;structsnode*next;}snode,*linkstack;

//链栈的基本操作statusinitstack_ll(linkstack&s){s=(linkstack)malloc(sizeof(snode));if(!s){printf("初始化失败\n");returnerror;}s->next=null;printf("初始化成功\n");returnok;}//初始化链栈

statusemptystack_ll(linkstacks){if(s->next==null){returntrue;}else{returnfalse;}}//判断栈是否为空

statusgettop_ll(linkstacks,char&e){if(null==s->next){printf("栈为空\n");returnerror;}else{e=s->next->data;returnok;}}//返回栈顶元素

statuspush_ll(linkstack&s,chare){linkstacks;s=(linkstack)malloc(sizeof(snode));s->data=e;s->next=s->next;s->next=s;returnok;}//入栈

statuspop_ll(linkstack&s,char&e){if(null==s->next){returnerror;}linkstacks;s=s->next;e=s->data;s->next=s->next;free(s);returnok;}//出栈

数据结构实验报告(数据结构实训报告怎么写)

statusinput(linkstack&s){charc,d;c=getchar();push_ll(s,c);while(!emptystack_ll(s)){c=getchar();if(c=='('||c=='['){push_ll(s,c);}else{gettop_ll(s,d);if(d=='('&&c==')'){pop_ll(s,d);}elseif(d=='['&&c==']'){pop_ll(s,d);}else{return0;}

数据结构实验报告(数据结构实训报告怎么写)

}}}

voidoutput(linkstacks){if(emptystack_ll(s)){printf("yes\n");}else{printf("no\n");}}

main(){linkstacks;initstack_ll(s);input(s);output(s);}

9

数据结构实习报告

原发布者:123大多4《数据结构与算法分析》课程设计题目:文字处理程序(字符串的应用)学生姓名:林武祥学号:16230243008专业班级:B16软件工程1班指导教师:颜慧学院:大数据与计算机学院2017年12月目录
一、课程设计题目1
二、开发背景1
三、项目总体设计1
3.1需求分析1
3.2系统功能模块设计1
四、详细实现步骤和流程图2
4.1功能实现展示2
4.2流程图框架4
五、部分具体代码分析及实现5
六、项目总结9
七、、参考文献9
1、课程设计题目文字处理程序(字符串的应用)及简单文本编辑器
二、开发背景由于对于现在的电脑族对电脑的使用频率逐年增大,对电脑的需要具有依赖性。其中不乏有对文本的编辑的需求,因此,本次实训周做了一款简单的文本编辑器的应用程序,对文本编辑器的相关功能做了一定的实现,既简单又实用。本软件为一个简单而且很实用的文本编辑的工具,不但可以进行一些文字的输入和文本的读取,而且,该文本编辑器也可以对文本进行一些保存、另存、剪切、粘贴、删除等常规的操作,是一款比较适合广大普通用户和非计算机专业的用户和文本编辑的处理软件,本软件不但界面友好,功能齐全,而且操作简单。
三、项目总体设计
3.1需求分析文字处理程序运行后弹出文本编辑器的主界面,由键盘输入或以打开的方式输入或显示文本文件内容。其中程序基本操作:包括文本的复制、粘贴、剪切、删除、查找、替换等功能。统计功能:分别统计

数据结构实验报告咋写啊

根据实验指导书写啊、、把实验内容写做的实验的代码加注释啊、、最后写几句体会感想啊、、、

1

数据结构表达式求值实验报告

据结构实验报告题目:编制一个表达式求值的程序。一.需求分析
1.本演示程序中,利用堆栈存储结构存储读入的运算符,输入的限定范围是数字(0—9),以及+*/()。输入字符串限定长度为20,可以根据需要进行改变。如果遇到不是以上范围或者连续输入两个运算符,如:++,则会提示输入错误,请重新输入。输出的结果是转换后的后序表达式,以及float型数字,不会含有非法字符。
2.演示程序采用的是文件输入,只需要在源代码中输入要输入的文件的地址,然后就可以在文本文件中进行输入,运行过程中会自动读取,输出文本输入的表达式,及运算结果。
3.程序执行的命令包括:1)构造字符优先级比较表,比较优先关系2)文件输入3)构造堆栈,运算符入栈4)堆栈输出,变为后序表达式,并计算5)输出结果,结束
4.测试数据文件地址:C:\\Users\\lenovo\\Desktop\\
4.txt1)输入:(35+20/2)*2-4/2+12正确输出结果是:100.00002)输入:(35+20/2)*2-/2+12结果是:errorinput3)输入:a+ar/3=135结果是:errorinput二.概要设计为实现以上程序功能,需运用堆栈用于存储运算符,因此需要定义抽象数据类型。
1.堆栈的抽象数据类型定义为:ADTstack{数据对象:D={ai|ai∈正整数,i=0,1,2,3,…n,及{+-*/()}}数据关系:R1={|ai-1,ai∈D}基本操作:Initstack(&s)操作结果:构造一个空的堆栈sPushstack(&s,e)初始条件:存在堆栈s操作结果:元素e压入堆栈s,top+1Pop(&s,e)初始条件:栈s已经存在且非空操作结果:删除栈顶元素e,输出其值,top-1
2.程序包含三个模块:1)运算符优先关系模块2)主程序模块;Intmain(void){初始化;Do{接受命令;处理命令;}while(“命令”=”退出”);}3)堆栈模块三.详细设计
1.程序源代码解释为:floatResult(intc,floatr[],inttop){//定义输出结果intj;floattemp;switch(c){//以下是四种基本运算的计算定义,运算完成后直接将top-1值赋予topcase42:r[top-1]=r[top-1]*r[top];top=top-1;break;//乘法case43:r[top-1]=r[top-1]+r[top];top=top-1;break;///加法case45:r[top-1]=r[top-1]-r[top];top=top-1;break;//减法case47:r[top-1]=r[top-1]/r[top];top=top-1;break;//除法case94:for(j=1,temp=r[top-1];j=1){//栈不空的时候,栈中元素赋给houzhi,并计数biaozhi[b++]=i;houzhi[i]=duizhan[top-1];top=top-1;i=i+1;}max=i;//从0到i循环输出后序表达式for(i=0,b=0;i

数据结构的实验报告中要让写“定义测试数据”和“数据结构定义”,这两个词是让写什么啊?

定义测试数据:就是让你对您的程序或者函数的输入参数给输入值,当然这个输入值一般会有很多组,因为你必须对函数或者程序做到条件覆盖或者分支覆盖。数据结构定义:数据结构定义:就是您的程序或者函数使用什么样的方式存储的,比如结构体,那就把结构体写出来,比如STL的容器,比如链表结构,比如树结构。。。把您的存储您数据的结构写出来。5

数据结构实验报告(数据结构实训报告怎么写)

数据结构综合实验

1#大中小发表于2004-11-2414:50只看该作者同路人—同济鹊桥|同渡重洋—海外生活|同济大学新闻真·同济,尽在投票统计求助高手:数据结构大作业--排序算法改进综合实验。麻烦大家帮忙,小弟感激不尽!!※来源:同济网论坛BBS.TONGJI.NET1.实现基本排序方法:直接插入、希尔、直接选择、冒泡、快速、堆、二路归并;2.对每种基本排序方法尽量给出改进算法;3.给出改进前后的实验结果:(1)随机生成若干个随机数进行排序(如n=10的3次方,2*1010的3次方,10的4次方,…等),记录每个排序的时间耗费。(2)分别给出正序和反序的初始序列进行排序(如n=104),检验算法对初始序列的敏感程度。(3)给出实验结果、原因分析、结论等(如改进效果明显或不明显的原因?算法的实际时间增长速度如何?复杂性相当的算法之间快慢如何?等等)排序算法实验比较(单位:秒)(4)所有实验结果汇集成一张表,参考格式如下:计算条件:CPU:***(如AMDXP2000+,P4
2.0A等,不要超频)内存:***(如HYDDR333512M等,不要超频)主板:***(如**牌**型号)操作系统:***(如Windows98,WindowsXP等)编译软件:***(如VC++
6.0等)其它:***(对计算结果有影响的需要说明的软、硬件情况)4.注意事项:(1)使用标准C或C++语言,不要采用开发工具;(2)伪造实验数据者,记0分。(3)各种算法的改进要尽量有、尽量多些(可分析效率低的原因、存在的问题等有针对性地改进,比如直接选择排序当初始序列已经有序时仍要执行n-1趟,是没有必要的),如果只有基本算法,而几乎没有改进算法,则做得再好,也没有高分。(4)汇总表中规模n的大小不一定取103~105,可根据自己的计算机情况调整和增加,以使排序时间不要太小或太大。若有的算法时间太长(如大于10分钟),可中途终止,并在汇总表中注明。(5)作业上交形式:纸质文档+盘。其中,文档部分不是程序的使用说明书,也不是程序的简单打印,要比较详细地讲明算法原理和方法,程序部分要有必要的注释。盘上要有所有的程序和纸质文档的电子原文(如word文件)。附录:参考知识1.排序时间:由clock()函数得到时钟数,排序前后的时钟数之差/每秒的时钟数,即得时间(秒)#include&lt;time.h&gt;…InsertSort(R,n);t2=clock();cout&lt;&lt;"时间:"&lt;&lt;float(t2-t1)/CLK_TCK&lt;&lt;endl;2.随机数的生成#include&lt;stdlib.h&gt;…for(i=1;i&lt;=n;i++)R<i>.key=rand();//生成0-RAND_MAX之间的随机数但rand()只生成0-RAND_MAX(一般为65535)之间的随机数。当问题规模n较大时,将生成很多重复的随机数。比较合适的方法是生成0-n之间的随机数,这要用random(intnum)函数。它可生成0-任意数num之间的随机数。但该函数在VC++中没有定义,可自己定义如下:intrandom(intnum){returnrand()*num/(RAND_MAX+1);}…for(i=1;i&lt;=n;i++)R<i>.key=random(n);//生成0-n之间的随机数3.各个算法单独运行会很繁,可分别调通后编一个菜单程序集中起来

评论(0)

发表评论: