ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:136.91KB ,
资源ID:21268794      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21268794.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课题数据结构课程设计报告书Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课题数据结构课程设计报告书Word文档下载推荐.docx

1、 while(c!=0) s=(node*)malloc(sizeof(node); s-coef=c;exp=e; r-next=s; r=s; next=NULL; return(h);void arrange(node *pa) node *h=pa,*p,*q,*r; for(p=pa;p-next!=NULL;p=p-next); r=p; for(h=pa;h-=r;) for(p=h;=r&p!next) if(p-next)-exp(p-next-exp) q=p-next; p-next=q- q-next=p-next=q; void neipai(node *head)

2、node *p,*q,*r,*Q; p=head; if(head-=NULL) for(q=p-q!q=q-next) for(p=q-next,r=q;) if(q-exp=p-coef=q-coef+p-coef; Q=p; free(Q); else r=r- p=p- void insert(node *head,node *s) node *pre,*p; pre=head; p=pre- while(p! if(p-exp exp) break; pre=p;next=p; pre-node *copyList(node *head) node *l = NULL, *newHe

3、ad;newHead = (node *) malloc(sizeof(node);newHead-next = NULL; head = head- while (head != NULL) l = (node *) malloc(sizeof(node); l-coef = head-exp = head-exp; insert(newHead, l); return newHead;void print(node *p) while(p-=NULL) %d*x%d,p-coef,p-exp);void polyadd(node *ha, node *hb) node *p,*q,*pre

4、,*temp;int sum; p=ha- q=hb- pre=ha;=NULL&exp=q- sum=p-coef+q- if(sum!coef=sum;pre=pre- temp=q;free(temp); temp=p-free(p);p=temp; temp=q-free(q);q=temp; else if(p-exp pre=pre- else q=q- if(p! void polysub(node *ha,node *hb) node *p,*q,*pre,*temp,*x; x=q; while(x!=null) x-coef=-x- x=x-exp)void main()

5、node *ha,*hb,*hc,*hd;please input the coef and exp of ha:n ha=create(); arrange(ha);neipai(ha);hc=copyList(ha); print(ha);please input the coef and exp of hb:hb=create(); arrange(hb);neipai(hb);hd=copyList(hb); print(hb);add is :polyadd(ha,hb);sub is :polysub(hc,hd); print(hc);运行结果7、 猴子选大王一堆猴子都有编号,编

6、号是1,2,3 .m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。要求:输入数据:输入m,nm,n 为整数,nm输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能 #include typedefstruct monkey int num;struct monkey *next; Monkey,*LINK;LINK p,head,p2;inti,m,n;Input m:m);Input n(nm):n);head=p=p2=(LINK)ma

7、lloc(sizeof(Monkey); /三个指针指向同一个内存单元for(i=1;ip2=p;next=head; /把链表的首尾相连p=head; /p指向了第一个结点put the sorted number to the monkey! /对猴子进行编号=m;num=i; /从第一个结点到最后一个结点一次给猴子编号 the %d monkey:%dnnum,p-num); /循环结束,p指向了最后一个结点i=0; /再把p指向第一个结点while(1) i+; the %d number monkey shouted out:num,i);/这只猴子报号if(p-next=p) br

8、eak; /此为while循环的出口if(i=n) /if语句中是删除结点的过程 the %d number monkey is out the circlen /这只猴子被淘汰 /在此删除结点pp=p2-continue;else if(i=n-1) /保存将要退出结点的前一个结点(存到p2中) the monkey is the winner : /这只猴子胜出运行结果:马鹏起 200805968. 建立二叉树,后序、先序遍历( 用递归或非递归的方法都可以)要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立二叉树存储结构的输入函数、输出后序遍历序列的函数、输出先序遍历序

9、列的函数;# includedata); preorder(bt-lchild);rchild); else if(g=2) printf(空树nbitreptr *crt_bt() /*建立二叉树*/ char ch; if(f=1) printf(输入根结点,#表示结束n else printf(输入结点,#表示结束nn%cch); f=f+1; if(ch=#) bt=null;bt=(bitreptr *)malloc(len);bt-data=ch;%c 左孩子lchild=crt_bt();%c 右孩子rchild=crt_bt(); return(bt);postorder(bi

10、treptr *bt) /*后序遍历*/ if(n=1) printf(后序遍历序列为: n=n+1;postorder(bt- else if(n=2) printf(main()f=1; g=1; n=1;bt=crt_bt(); preorder(bt);postorder(bt);任杰 200805356、 joseph环 编号是1,2,,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下

11、去,直到所有人全部出列为止。设计一个程序来求出出列顺序。利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?建立输入处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表。建立一个输出函数,将正确的输出序列string.h/* 结构体和函数声明 */typedefstruct _node_tintn_num;struct _node_t *next; node_t;node_t *node_t_create(int n);node_t *node_t_g

12、et(node_t *pn, int m);/* 功能函数实现 */* * name: node_t_create * params: * n in 输入要构造的链表的个数 * return: * 返回构造成功的环形单向链表指针 * notes: * 构造节点数量为 n 的环形单向链表 * */node_t * node_t_create(int n)node_t *p_ret = NULL; if (0 != n)intn_idx = 1;node_t *p_node = NULL; /* 构造 n 个 node_t */p_node = (node_t *) malloc(n * size

13、of(node_t); if (NULL = p_node) return NULL;memset(p_node, 0, n * sizeof(node_t); /* 内存空间申请成功 */p_ret = p_node; for (; n_idx n_num = n_idx;next = p_node + 1;p_node = p_node-n_num = n;next = p_ret; return p_ret; main * none * int * main functionint main()int n, m;node_t *p_list, *p_iter;input m:input

14、n: /* 构造环形单向链表 */p_list = node_t_create(n); /* Josephus 循环取数 */p_iter = p_list; m %= n; while (p_iter != p_iter-inti = 1; /* 取到第 m-1 个节点 */ i /* 输出第 m 个节点的值 */, p_iter-n_num); /* 从链表中删除第 m 个节点 */p_iter-next = p_iter- /* 释放申请的空间 */ free(p_list);9、 赫夫曼树的建立 任务 :建立建立最优二叉树函数可以建立函数输入二叉树,并输出其赫夫曼树存储结构、 基本算法

15、(可以使用程序流程图) 、输入输出、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;#define LEN sizeof(structHTnode)inti,l,n,w=0,c,start,a1,a2,f;structHTnode unsigned int weight; unsigned intparent,lchild,rchild; *p,*HT;typedef char *Huffmancode;Huffmancode HC;char *cd;select()int k=1,j,flag=0; while(HT+k)-parent!=0) k+; for(j=k+

16、1;j=0) flag=1; if(HT+j)-weight=0) flag=1; if(!flag) if(HT+j)-weightweight) k=j; return(k);printf(n赫夫曼树的建立:请输入权值(叶子)数目:l); while(l1) printf(输入错误,请重新输入权值数目: scanf( if(l=1) printf(n只有一个权值,无须建立赫夫曼树! else n=2*l-1; HT=(structHTnode*)malloc(n+1)*LEN);请按对应顺序输入权值(输入一权值,键入一回车): for(i=1,p=HT+1;=l;+i,+p) scanf(

17、w); while(wweight=0;+i) a1=select(); (HT+a1)-parent=i; a2=select(); (HT+a2)- (HT+i)-lchild=a1;rchild=a2;weight=(HT+a1)-weight+(HT+a2)-weight; HC=(Huffmancode)malloc(l+1)*sizeof(char *);cd=(char *)malloc(l*sizeof(char); *(cd+(l-1)=0; for(i=1; start=l-1; for(c=i,f=(HT+i)-parent;f!=0;c=f,f=(HT+f)-parent) if(HT+f)-lchild=c) *(cd+(-start)=0 else *(cd+(-start)=1 *(HC+i)=(char *)malloc(l-start)*sizeof(char);strcpy(*(HC+i),(cd+start);n对应的二进制赫夫曼编码为:n

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1