书签 分享 收藏 举报 版权申诉 / 5
上传文档赚钱

类型数据结构编程题.pdf

  • 上传人(卖家):四川三人行教育
  • 文档编号:1551287
  • 上传时间:2021-07-08
  • 格式:PDF
  • 页数:5
  • 大小:37.44KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《数据结构编程题.pdf》由用户(四川三人行教育)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据结构 编程
    资源描述:

    1、编程题: 10.假设有一个带表头结点的链表,表头指针为head,每个结点含三个域:data, next 和 prior,结点 LinkList 类型定义如下: 现在所有结点已经由next 域连接起来, 试编一个算法, 利用 prior 域(此域初值为NULL) 把所有结点按照其值从小到大的顺序链接起来。 typedef struct node int data; struct node *next,*prior; LinkList; /采用插入排序法,设p 指向待插入的结点,用q 搜索已由prior 域链接的有序表找到合 适位置将p 结点链入 void insert (LinkList *he

    2、ad) LinkList *p,*s,*q; p=head-next; /p 指向待插入的结点,初始时指向第一个结点 while(p!=NULL) s=head; / s指向 q 结点的前趋结点 q=head-prior; /q 指向由 prior 域构成的链表中待比较的结点 while(q!=NULL) q=q-prior; s-prior=p; p-prior=q; / 结点 p 插入到结点s 和结点 q 之间 p=p-next; 9.已知线性表的元素按递增顺序排列 ,并以带头结点的单链表作为存储结构。试编写一 个删除表中所有值大于min 且小于 max 的元素(若表中存在这样的元素)的算

    3、法。 delete(LinkList *head, int max, int min) linklist *p, *q; if (head!=NULL) q=head; p=head-next; while(p!=NULL) while(p!=NULL) q-next=p; 8.已知线性表的元素是无序的 ,且以带头结点的单链表作为存储结构。设计一个删除表 中所有值小于max 但大于 min 的元素的算法。 delete(LinkList *head, int max, int min) LinkList *p,*q; q=head; p=head-next; while (p!=NULL) i

    4、f(p-datadata=max) q=p; p=p-next; else q-next=p-next; free(p); p=q-next; 7.编写一个算法,求出邻接矩阵表示的无向图 中序号为numb 的顶点的度数。 int degree1(Graph for(j=0; jga.vexnum; j+) if (ga.costnumbj!=0 return (d); 6.编写一个算法,求出邻接矩阵表示的有向图 中序号为numb 的顶点的度数 int degreel(Graph for(i=0;ivexnum; for(i = 1; ivexnum; i+) for(j = 1; jvexnu

    5、m; j+) g.edgesij = 0; for(i = 1; ivexnum; i+) m = G-vexpexi.firstarc; while(m) g.edgesim-adjvex = 1; m = m-nextarc; 4.编写一个双向起泡的排序算法,即相邻两趟向相反方向起泡。 void BubbleSort(SeqList R,int n) for(int i=1;ii;j-) if(Rj.keyRj-1.key) R0.key = Rj.key; Rj.key = Rj-1.key; Rj-1.key = R0.key; else for(int j=i;jRj+1.key)

    6、R0.key = Rj.key; Rj.key = Rj+1.key; Rj+1.key = R0.key; 3.试以单链表为存储结构实现简单选择排序的算法 void LinkList_Select_Sort(LinkList p-next-next;p=p-next) q=p-next; x=q-data; for (r=q,s=q;r-next;r=r-next) /在 q 后面寻找元素值最小的结点 if (r-next-datanext-data; s=r; if (s!=q) /找到了值比q-data 更小的最小结点s-next p-next=s-next; s-next=q; t=q

    7、-next; q-next=p-next-next; p-next-next=t; /交换 q 和 s-next 两个结点 /for /LinkList_Select_Sort 2.有一种简单的排序算法,叫做计数排序(count sorting) 。这种排序算法对一个待排 序的表 (用数组表示,表中所有待排序的关键字互不相同)进行排序,并将排序结构存 放到另一个新的表中。计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计 表中有多少个记录的关键字比该记录的关键字小。假设对某一个记录,统计出计数值为 C,那么,这个记录在新的有序表中的合适的存放位置即为C。实现计数排序的算法。 Int a300,b300; For(int i=0;in;i+) Num=0; For(int j=0;jn;j+) If(ajdata; while(p!=NULL)/找到数据域值最小的结点 If(data1data) p1=p; data1=p-data; p=p-next; P=head; While(pnext!=p1) p=p-next;/ 找到据域值最小的结点前的结点 p-next=p-next-next;/ 删除数据域值最小的结点。 free(p1);

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据结构编程题.pdf
    链接地址:https://www.163wenku.com/p-1551287.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库