数据结构实验指导书(2016)(5)
flushall(); f=getchar();
if(f=='C')q=initqueue_hc(); else if(f=='N')
{cshqueue_hc(q);printqueue_hc(q);} else if(f=='I')
{printf(\输入要的入队的元素:\flushall();e=getchar();
enqeue_hc(q,e);printqueue_hc(q);} else if(f=='D')
{deqeue_hc(q);printqueue_hc(q);} }while(f!='E');
hc_sqqueue *initqueue_hc() {hc_sqqueue *q;
q=(hc_sqqueue*)malloc(sizeof(hc_sqqueue)); if(!q)exit(ERROR); return(q);}
int cshqueue_hc(hc_sqqueue *q) {char e;
int enqeue_hc(hc_sqqueue *q,char e);
q->base=(char*)malloc(MAXQSIZE*sizeof(char)); if(!q->base)exit(ERROR);
q->front=q->rear=0;q->length=0; printf(\输入元素以#结束:\\n\flushall(); e=getchar(); while(e!='#') {enqeue_hc(q,e);
if(q->length==MAXQSIZE)return(ERROR); else {flushall();e=getchar();}} return(OK);}
int enqeue_hc(hc_sqqueue *q,char e)
{if(q->length==MAXQSIZE)return(ERROR); q->base[q->rear]=e;
q->rear=(q->rear+1)%MAXQSIZE; q->length++; return(OK);}
int deqeue_hc(hc_sqqueue *q) {if(q->length==0)return (ERROR);
printf(\出队的元素为:%c\\n\
第18页 /共58页
q->front=(q->front+1)%MAXQSIZE;q->length--; return (OK);}
int printqueue_hc(hc_sqqueue *q) {int t=q->front;
if(q->length==0){printf(\队空!\\n\if(q->length==MAXQSIZE)printf(\队满!\\n\printf(\当前队列中元素为:\\n\do{printf(\
t=(t+1)%MAXQSIZE;}while(t!=q->rear); return(OK);}
实验六二叉树建立及遍历操作
实验预备知识:
1.熟练指针进行数据访问。
2.掌握二叉树的存储结构和处理方法。 3.掌握二叉树三种遍历的算法。
一、实验目的
1.熟悉二叉树的存贮结构及遍历方式,掌握有关算法的实现。 2.能够利用二叉树解决具体问题。
二、实验环境
⒈ 硬件:每个学生需配备计算机一台。操作系统:DOS或Windows; ⒉ 软件:DOS或Windows操作系统+Turbo C;
三、实验要求
1.要求采用二叉链表作为存贮结构,完成二叉树的建立、先序、中序、和后序遍历的操作。其中先序遍历和后序遍历采用递归算法,中序遍历采用非递归算法。
2.输入数据:树中每个结点的数据类型设定为字符型。
四、实验内容
1.在自己的U盘的“姓名+学号”文件夹中创建“实验6”文件夹,本次实验的所有程序和数据都要求存储到本文件夹中。
2.实现如下二叉树处理函数。 建树子函数 先序遍历子函数 中序遍历子函数 后序遍历子函数
第19页 /共58页
#include
char data;
struct BiTNode *lchild,*rchild; }
BiTNode,*BiTree;//定义结点类型 BiTree CreateBiTree()//创建树 {
char p;BiTree T; scanf(\ if(p==' ')
T=NULL; else {
T=(BiTNode *)malloc(sizeof(BiTNode));//为结点开辟空间 T->data=p;
T->lchild=CreateBiTree(); T->rchild=CreateBiTree(); }
return (T); }
void PreOrder(BiTree T)//先序 {
if(T!=NULL) {
printf(\ PreOrder(T->lchild); PreOrder(T->rchild);
} }
void InOrder(BiTree T)//中序 {
if(T!=NULL) {
InOrder(T->lchild); printf(\ InOrder(T->rchild);
} }
void PostOrder(BiTree T)//后序
第20页 /共58页
{
if(T!=NULL) {
PostOrder(T->lchild); PostOrder(T->rchild); printf(\ } }
void main()//主函数 {
BiTree Ta;
Ta=CreateBiTree(); printf(\先序遍历:\ printf(\ PreOrder(Ta); printf(\
printf(\中序遍历:\ printf(\ InOrder(Ta); printf(\
printf(\后序遍历:\ printf(\ PostOrder(Ta); }
实验七二叉树的应用程序设计
实验预备知识:
2.掌握二叉树的创建和遍历算法。 3.掌握霍夫曼编码原理。
一、实验目的
1.进一步掌握二叉树的存储结构和相应算法。 2.掌握霍夫曼树树的创建和霍夫曼编码。
二、实验环境
⒈ 硬件:每个学生需配备计算机一台。操作系统:DOS或Windows; ⒉ 软件:DOS或Windows操作系统+Turbo C;
三、实验要求
1.要求采用二叉链表作为存贮结构,完成霍夫曼树的创建。
第21页 /共58页
2.输出对应数据的霍夫曼编码,并求出平均编码长度。
四、实验内容
1.在自己的U盘的“姓名+学号”文件夹中创建“实验7”文件夹,本次实验的所有程序和数据都要求存储到本文件夹中。
2.现在某电报公司假设有10字符进行编码,这10个字符的使用频率如下表所示,请创建霍夫曼树。
A 19 B 18 C 16 D 14 E 12 F 8 G 6 H 4 I 2 J 1 3.编写函数求出A~J的霍夫曼编码。
五、报告要求
1.认真书写实验报告,字迹清晰,格式规范。报告中应写清姓名、学号、实验日期、实验题目、实验目的、实验要求、实验原理(系统主要工作流程图)。
2.报告中应书写主要源程序,且源程序中要有注释。 3.报告最后包含实验总结和体会。
4.如未调试通过或结果不正确,试分析原因,利用课余时间独立完成,完成后方可书写实验报告。
#include
typedef char* HuffmanCode; typedef struct {char data;
unsigned int weight ;
unsigned int parent, LChild,RChild ; }HTNode, * HuffmanTree; //选出权值最小的两个//
void select(HuffmanTree *ht,int n, int *s1, int *s2) {int i;
int min1=0,min2=0;
(*ht)[min1].weight=(*ht)[min2].weight=101; for(i=1;i<=n;i++)
{if((*ht)[i].weight < (*ht)[min1].weight&&(*ht)[i].parent == 0) min1=i;} for(i=1;i<=n;i++)
{if((*ht)[i].weight < (*ht)[min2].weight&&(*ht)[i].parent == 0&&min1!=i) min2=i;}
*s1=min2;*s2=min1; }
第22页 /共58页
…… 此处隐藏:1612字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




