数据结构-实验报告-实验六-框架-A3版.

时间:2019-05-14 03:10:57下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《数据结构-实验报告-实验六-框架-A3版.》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《数据结构-实验报告-实验六-框架-A3版.》。

第一篇:数据结构-实验报告-实验六-框架-A3版.

合 肥 学 院 学 生 实 验 报 告 专业 计算机科学与技术 姓名 学号 实验日期 2010年 4月 13实验地点 成绩 实验题目 实验六 — 程序设计题 3 问题分析 本题用栈进行运算比较简单,因此需要定义判断栈是否为空,将数据入 栈,取栈顶元素,出栈元素。概要设计 int 型数据 堆栈型指针 int 型数据用来存储数据,堆栈型指针用来指向下一个结构体;然 后 设 计 建 栈 函 数 linkstack* set(, 同 时 还 要 有 数 据 入 栈 函 数 linkstack* push(linkstack *k,int a,出栈函数,判断栈是否为空函数 int empty(linkstack *k,取栈顶函数 int gettop(linkstack *k。

通过在主函数中调用对栈操作的这些函数,完成对数据进制的转换。测试数据:将 9分别转换成 2-9等不同进制输出。详细设计

linkstack* set(//建立空堆栈 { linkstack *l;//定义堆栈类指针 l=NULL;//将指针付为空值 返回栈 l;}

linkstack* push(linkstack *k,int a//向堆 栈中插入数据 { linkstack *l;//建立栈指针

l=(linkstack*malloc(sizeof(linkstack;/申请地址 l->data=a;向栈的数据域赋值 l 的指针域指向下一个结构体 k=l;返回堆栈 k;} int empty(linkstack *k//判断堆栈是否为空 { if(k==NULL//如果堆栈为空 return 1;//返回 1 else//否则 return 0;//返回 0 } int gettop(linkstack *k//取栈顶元素 { return k->data;//返回栈顶元素

} 详细设计 … … … …

… … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … void main(//主函数

{ linkstack *m;//定义堆栈指针 int a,b,c;//定义整型变量 m=set(;调用建栈函数建栈 printf(“t请 输 入 要 转 换 的 数 字 :nt”;scanf(“%d”,&a;输入要转换的数 printf(“t请输入要转换成多少进制(范 围 2-9:nt”;scanf(“%d”,&c;while(a如果 a 不为 0 { b=a%c;//求余

m=push(m,b;a=a/c;

} printf(“t该数的 %d进制表示为:”,c;while(!empty(m//如果不为空 { printf(“%d ”,gettop(m;//输出栈 顶元素

m=pop(m;//栈顶元素出栈 }

printf(“nt”;} 指导教师:日期:年 月 日 合 肥 学 院 学 生 实 验 报 告

函数的返回的类型与接收函数值的变量类型不对,不能正常编译。程序结果如下图所示:

该软件按为在 dos 下运行的软件,第一步提示用户输入要转换的数据;输入数据后,会提示输入要转换成多少进制的数;然后就会输出结果。

教师签字: 日期: 年 月 日

测试结果 调试分析 操作说明

… … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … …

第二篇:数据结构实验六报告

实验六报告

课程名称: 数据结构 实验名称:二叉树的应用

实验日期

2011/11/23

一、实验目的:

掌握赫夫曼二叉树的建立及赫夫曼编码的生成。

二、实验内容与要求:

根据给定的n个权值生成赫夫曼二叉树,输出赫夫曼编码。

三、数据结构设计

顺序表的存储结构,建立了二叉树的关系

Struct HTNode{

int weight;

unsigned int parent,lchild,rchild;};

四、算法设计

1、从数据中选择较小的两个数据元素

void Select(HTNode *HT, const int n, int &a, int &b){ //选择较小的两个元素

} int x,y;

x=y=0x7fff;for(int j=0;j

if(HT[j].parent==0)

if(HT[j].weight

2、建立赫夫曼树

void CreatHuff(HTNode *HT,int *p,const int n){

} int m=2*n-1;int i,a,b;for(i=0;i

Select(HT ,i,a,b);HT[a].parent=HT[b].parent=i;HT[i].weight=HT[a].weight+HT[b].weight;HT[i].lchild=a;HT[i].rchild=b;}

3、生成赫夫曼编码

void HuffCoding(HTNode *HT, Huffcode &HC, const int n){

//

}HC=new

char*[n+1];

char *code=new char[n];code[n-1]='';int i,j,p,k;for(i=0;i

} delete[] code;j=n-1;k=i;while(HT[k].parent){

p=HT[k].parent;if(HT[p].lchild==k)code[--j]='0';else code[--j]='1';k=p;} HC[i]=(char*)malloc((n-j)*sizeof(char));HC[i]=new char[n-j];strcpy(HC[i],&code[j]);

五、测试结果

测试数据一:

测试数据二:

六、心得体会

这次实验是在前面的实验基础之上,加上只用了顺序表的存储结构,所以比较简单。尽管实验内容少,但还是学到一些知识。首先学会了赫夫曼编码的简单实现,认识到其应用的实际价值。然后,学会了用指针数组,前面几次试验有过尝试,但没写成。这次实验最初也是用C++写的,但错误“无法解析的外部符号“public: void __thiscall HuffmanTree::HuffCoding(struct HTNode *,char * * &,int)”(?HuffCoding@HuffmanTree@@QAEXPAUHTNode@@AAPAPADH@Z),该符号在函数_main 中被引用”改不过来,所以迫于无奈,只得稍微改成像C的代码。

第三篇:《数据结构》上机作业——实验报告(六)

“计算机软件技术基础”课程实验报告

(六)实验名称:数据库及SQL语言

班级_______ 姓名__________ 学号______实验日期:

实验机时:3 学时实验成绩:

-----------------

一.实验目的:

1、学习数据库设计的一般过程及相关技术;

2、学习access数据库管理系统;

3、掌握数据库的输入、查询、更新操作。

二.实验内容:

1、需求陈述:某校图书馆要建立一个图书数据管理系统。该图书馆的图书(书名、分类号、作者、出版社)存放在不同的借阅室(室名),读者(姓名、系名、类别)在书架上找到所需图书后,可以到服务台办理借阅(借阅时间)。

设计要求:

 分析需求,建立数据库的概念模型;

 将概念模型转换为关系模型(注意:是否需要作规范化处理);  写出创建基本表的SQL语句;

 写出以下查询要求的SQL语句:

(1)所有“高等数学习题集”书的信息;

(2)读者“李林”借了什么书?

(3)“社会学原理”在哪个借阅室?

2、在access数据库管理系统中建立所设计的关系表;

3、向各表中输入一组实验数据(元组)(注意:关系完整性);

4、对数据库进行查询。

三.实验结果:

1、实体-关系图;

2、数据库表;

3、创建基本表的语句;

4、查询语句。

第四篇:数据结构实验报告

注意:实验结束后提交一份实验报告电子文档

电子文档命名为“学号+姓名”,如:E01214058宋思怡

《数据结构》实验报告

(一)学号:姓名:专业年级:

实验名称:线性表

实验日期:2014年4月14日

实验目的:

1、熟悉线性表的定义及其顺序和链式存储结构;

2、熟练掌握线性表在顺序存储结构上实现基本操作的方法;

3、熟练掌握在各种链表结构中实现线性表基本操作的方法;

4、掌握用 C/C++语言调试程序的基本方法。

实验内容:

一、编写程序实现顺序表的各种基本运算,并在此基础上设计一个主程序完成如下功能:

(1)初始化顺序表L;

(2)依次在L尾部插入元素-1,21,13,24,8;

(3)输出顺序表L;

(4)输出顺序表L长度;

(5)判断顺序表L是否为空;

(6)输出顺序表L的第3个元素;

(7)输出元素24的位置;

(8)在L的第4个元素前插入元素0;

(9)输出顺序表L;

(10)删除L的第5个元素;

(11)输出顺序表L。

源代码

调试分析(给出运行结果界面)

二、编写程序实现单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:

„„„„

„„„„

小结或讨论:

(1)实验中遇到的问题和解决方法

(2)实验中没有解决的问题

(3)体会和提高

第五篇:数据结构实验报告

南京信息工程大学实验(实习)报告

实验(实习)名称数据结构实验(实习)日期 2011-11-2得分指导教师周素萍

系公共管理系专业信息管理与信息系统年级10级班次1姓名常玲学号2010230700

3实验一顺序表的基本操作及C语言实现

【实验目的】

1、顺序表的基本操作及 C 语言实现

【实验要求】

1、用 C 语言建立自己的线性表结构的程序库,实现顺序表的基本操作。

2、对线性表表示的集合,集合数据由用户从键盘输入(数据类型为整型),建立相应的顺序表,且使得数据按从小到大的顺序存放,将两个集合的并的结果存储在一个新的线性表集合中,并输出。

【实验内容】

1、根据教材定义的顺序表机构,用 C 语言实现顺序表结构的创建、插入、删除、查找等操作;

2、利用上述顺序表操作实现如下程序:建立两个顺序表表示的集合(集合中无重

复的元素),并求这样的两个集合的并。

【实验结果】

[实验数据、结果、遇到的问题及解决]

一. Status InsertOrderList(SqList &va,ElemType x)

{

}

二. Status DeleteK(SqList &a,int i,int k)

{//在非递减的顺序表va中插入元素x并使其仍成为顺序表的算法 int i;if(va.length==va.listsize)return(OVERFLOW);for(i=va.length;i>0,x

}

//注意i的编号从0开始 int j;if(i<0||i>a.length-1||k<0||k>a.length-i)return INFEASIBLE;for(j=0;j<=k;j++)a.elem[j+i]=a.elem[j+i+k];a.length=a.length-k;return OK;

三.// 将合并逆置后的结果放在C表中,并删除B表

Status ListMergeOppose_L(LinkList &A,LinkList &B,LinkList &C)

{

LinkList pa,pb,qa,qb;pa=A;pb=B;qa=pa;qb=pb;// 保存pa的前驱指针 // 保存pb的前驱指针 pa=pa->next;pb=pb->next;A->next=NULL;C=A;while(pa&&pb){} while(pa){} qa=pa;pa=pa->next;qa->next=A->next;A->next=qa;if(pa->data

data){} else{} qb=pb;pb=pb->next;qb->next=A->next;//将当前最小结点插入A表表头 A->next=qb;qa=pa;pa=pa->next;qa->next=A->next;//将当前最小结点插入A表表头 A->next=qa;

}

} pb=B;free(pb);return OK;qb=pb;pb=pb->next;qb->next=A->next;A->next=qb;

顺序表就是把线性表的元素存储在数组中,元素之间的关系直接通过相邻元素的位置来表达。

优点:简单,数据元素的提取速度快;

缺点:(1)静态存储,无法预知问题规模的大小,可能空间不足,或浪费存储空间;(2)插入元素和删除元素时间复杂度高——O(n)

求两个集合的并集

该算法是求两个集合s1和s2的并集,并将结果存入s引用参数所表示的集合中带回。首先把s1集合复制到s中,然后把s2中的每个元素依次插入到集合s中,当然重复的元素不应该被插入,最后在s中就得到了s1和s2的并集,也就是在s所对应的实际参数集合中得到并集。

下载数据结构-实验报告-实验六-框架-A3版.word格式文档
下载数据结构-实验报告-实验六-框架-A3版..doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    数据结构实验报告

    数据结构实验报告 一. 题目要求 1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历; 3)每次对树的修改操作和遍历操作的显示结果都需要在......

    数据结构实验报告

    实验报告4 排序 一、实验目的 1、掌握常用的排序方法,并掌握用高级语言实现排序算法的方法。 2、深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用。 3、了解各种方......

    数据结构实验报告

    数 据 结 构 实 验 报 告 1.问题描述 为某个单位建立一个员工通讯录管理系统,可以方便地查询每一个员工的办公室电话号码、手机号码及电子邮箱。 2. 设计分析 在本设计中,整......

    数据结构实验报告

    数据结构实验报告 第一次实验 学号:20141060106 姓名:叶佳伟 一、实验目的 1、复习变量、数据类型、语句、函数; 2、掌握函数的参数和值; 3、了解递归。 二、实验内容 1、(必做......

    数据结构实验报告

    天 津 科 技 大 学 14学年—15学年第 2 学期 数据结构实验任务书 专业名称: 计算机科学与技术 实验学时: 4 课程名称:数据结构 任课教师: 史绍强 实验题目:图的最短路径算法的实......

    数据结构实验报告

    河南省高等教育自学考试 实 验 报 告 册 计算机及应用专业(本科段) 《数据结构》姓名周东伟准考证号010512201008所属地市郑州实验地点河南职业技术学院实验日期2014-3-18实验......

    数据结构实验报告

    数据结构实验报告 指导教师 姓 名班 级学 号实验 室 黄梅根钟志伟 0140703 07310325 S331-B 2008-11-29 单链表的插入和删除实验日志 指导教师:黄梅根实验时间:2008年10月1......

    数据结构实验报告

    数据结构实验报告 实验名称数据结构与算法专业班级 数学与应用数学1201班 学号 1304120306 姓名谢 伟 指导老师陈 明......