数据结构编程题 (1).docx

上传人:太** 文档编号:95817529 上传时间:2023-09-03 格式:DOCX 页数:5 大小:14.29KB
返回 下载 相关 举报
数据结构编程题 (1).docx_第1页
第1页 / 共5页
数据结构编程题 (1).docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《数据结构编程题 (1).docx》由会员分享,可在线阅读,更多相关《数据结构编程题 (1).docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、编程题: 10.假设有一个带表头结点的链表,表头指针为head,每个结点含三个域:data, next 和prior,结点LinkList类型定义如下:typedef struct nodenext; /p指向待插入的结点,初始时指向第一个结点while(p!=NULL)(s=head; / s指向q结点的前趋结点q=head-prior; q指向由prior域构成的链表中待比较的结点while(q!=NULL) & (p-dataq-data) 查找插入结点p的合适的插入位置(s 二 q;q=q-prior;)s-prior=p;p-prior=q; /结点p插入到结点s和结点q之间p=p-

2、next; 9.已知线性表的元素按递增顺序排列,并以带头结点的单链表作为存储结构。试编写一个删除表中所有值大于min且小于max的元素(若表中存在这样的元素)的算法。delete(LinkList *head, int max, int min) (linklist *p, *q;if (head!=NULL)q=head;p=head-next;while(p!=NULL) & (p-datanext;)while(p!=NULL) & (p-datanext;q-next=p;) 8.已知线性表的元素是无序的,且以带头结点的单链表作为存储结构。设计一个删除表 中所有值小于max但大于min

3、的元素的算法。delete(LinkList *head, int max, int min)(LinkList *p,*q;q=head;p=head-next;while (p!=NULL)if(p-datadata=max)(q=p;p=p-next;)else(q-next=p-next;free(p);p=q-next; 7.编写一个算法,求出邻接矩阵表示的无向图中序号为numb的顶点的度数。 int degree 1 (Graph & ga, int numb) (int j,d=O;for(j=0; jga.vexnum; j+)if (ga.costnumbj! =0 & ga

4、.costnumb j! =MAXINT) d+;return (d);)6,编写一个算法,求出邻接矩阵表示的有向图中序号为numb的顶点的度数int degreel(Graph &ga,int numb)int i,j,num=0;for(i=0;ivexnum;for(i = 1; ivexnum; i+)for(j = 1; jvexnum; j+) g.edgesi|j = 0;for(i = 1; ivexnum; i+)(m = G-vexpexi .firstarc;while(m)(g.edgesi m-adj vex = 1;m = m-nextarc;)4,编写一个双向起泡

5、的排序算法,即相邻两趟向相反方向起泡。 void BubbleSort(SeqList R,int n)(for(int i=l;ii;j-)(if(Rj.keyRj+l.key)RO.key = Rj.key;Rj.key = Rj+l.key;Rj+l.key = RO.key;)3 .试以单链表为存储结构实现简单选择排序的算法void LinkList_Select_Sort(LinkList &L) 单链表上的简单选择排序算法(for (p=L;p-next-next;p=p-next) (q=p-next;x=q-data;for (r=q,s=q;r-next;r=r-next)

6、在q后面寻找元素值最小的结点 if (r-next-datanext-data;s=r;)if (s!=q) 找到了值比q-data更小的最小结点s-next p-next=s-next; s-next=q;t=q-next; q-next=p-next-next; p-next-next=t; 交换q和s-next两个结点/for /LinkList_Select_Sort2.有一种简单的排序算法,叫做计数排序(count sorting)o这种排序算法对一个待排 序的表(用数组表示,表中所有待排序的关键字互不相同)进行排序,并将排序结构存 放到另一个新的表中。计数排序算法针对表中的每个记录

7、,扫描待排序的表一趟,统计 表中有多少个记录的关键字比该记录的关键字小。假设对某一个记录,统计出计数值为 C,那么,这个记录在新的有序表中的合适的存放位置即为C。实现计数排序的算法。Int a300,b300;For(int i=0;in;i+)Num=O;For(int j=O;jn;j+)If(a|jdata;while(p!=NULL)/找到数据域值最小的结点(If(dataldata)(P1=P;datal=p-data;)p=p-next;)P 二 head;While(pnext!=pl)p=p-next;找到据域值最小的结点前的结点p-next=p-next-next;/删除数据域值最小的结点。free(pl);

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

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁