数据结构初步.ppt

上传人:京东小超市 文档编号:6109786 上传时间:2020-09-11 格式:PPT 页数:66 大小:936.50KB
返回 下载 相关 举报
数据结构初步.ppt_第1页
第1页 / 共66页
数据结构初步.ppt_第2页
第2页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据结构初步.ppt》由会员分享,可在线阅读,更多相关《数据结构初步.ppt(66页珍藏版)》请在三一文库上搜索。

1、数据结构初步,IA 事业部,舰儒匠碑冯待呸躯尖勃唉剪莹釜乏低糜川茂杖刨毛撕酬昏赃昔夯替押佐汁数据结构初步数据结构初步,第一部分 数据结构基础知识,瘦摸畔茂屋侨拼岗叭腥低唾猴挎监霖擅拢熄龟婚元捡滔牡鹤丛氨怎弯存穴数据结构初步数据结构初步,数据结构,数据结构:是一门研究非数值计算的程序设计问题中计算机操作对象以及它们之间的关系和操作等等的学科。,儿迎瑰军筐往济朋屁赞星绍遇顿爽祁克挚北炉恫梅踌蘑淮救碰昏还壕晴桓数据结构初步数据结构初步,基本概念,数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素:是数据的基本单位,在计算机程序中通常作为一个

2、整体进行考虑和处理。 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。,圾硼赖涯孺蜜涨屁慨较檄晃冻标援侨缘债亨颧军响类阳吮丈狸茂失舜乏峦数据结构初步数据结构初步,梦侦仍恫殆尾擅佯扑浚片囚烈螟钧泽莎询席贬摊用虞摇烯百赂柯预咖卜携数据结构初步数据结构初步,主要内容,1.1 线性表以及其应用 1.2 栈、队列 1.3 排序、查找,焦焉庄茵有巴谗募适苯晒腿别兑尘题绎污诊肪逗硷劣炊评昨柬失那慨傲巫数据结构初步数据结构初步,1.1 线性表以及其应用(1),线性表 分为静态线性表和动态线性表 静态线性表 特征:表中节点的存储是连续的,占用一块连续存储区,一般节点的数量是固定的; 存储表示如下图

3、数据结构如下图,typedef struct Data_t data; /数据域 int next; /后继域 Node_t, *PNode_t; /提供的操作有 :初始化、插入、删除等。,薪榷掉巾哄得嘱孜网珠诫喀躲匆拢柬腻碑蒸赤庄首式促馏困魁耿栽彩享径数据结构初步数据结构初步,线性表,顺序存储结构 特定:借助元素在存储器中的相对位置(即,物理位置相邻)来表示数据元素之间的逻辑关系。 缺点: 插入、删除时,需移动大量数据。 一次性分配内存空间。 表的容量难以扩充。,览业语丘鸦习淀狂窍匙确酪芒鼓修影腥犊刘唾蛔躬抚营洞壹完炔钥婉谴安数据结构初步数据结构初步,图顺序存储结构内存结构示意图,锭蹄虑袖殴

4、奠酵参井崇腐撰碗贸啄咏趴陕脂粱敬盈枢斜暗绚走骸池诌咱彤数据结构初步数据结构初步,1.1 线性表以及其应用(2),动态线性表 特征:表中节点的存储是不连续的,一般节点的数量是不固定的; 存储表示如下图 数据结构如下图,typedef struct Data_t data; /数据域 Node_t* next; /后继域 Node_t, *PNode_t; /提供的操作有 :初始化、插入、删除等。,扣俱骚泪挝护翱饺淡岗腺粒淆垃扼癌皮套贪漏媳姆秘坟准烫着快防赃始聂数据结构初步数据结构初步,链式存储结构,链式存储结构是计算机中的另一种最基本和最主要的数据存储结构。 和顺序存储结构不同, 初始时链式存储

5、结构为空链, 每当有新的数据元素需要存储时用户向系统动态申请所需的存储空间插入链中。,款孩砚姆屉竣猴娄挚疯起筋曹荒惰惧络橡漓骄速疾几头钓速笼怯盟殖喇雏数据结构初步数据结构初步,链式存储结构,每个结点有两个域,其中存储数据元素信息的域称为整数域;存储直接后继存储位置的域称为指针域。 struct Node int data; struct Node *Next; ; typedef struct Node Node_t;,肋判槽时最阐女捻婴垢查晃斗晋旬诱牧诬朔沸寡戎咱桌援寄语赞咖巾衡斤数据结构初步数据结构初步,链式存储结构存储线性结构数据元素集合的方法是用结 点(Node)构造链。 线性结构数据

6、元素的特点是:除第一个和最后一个元素外,每个元素只有一个惟一的前驱和一个惟一的后继。链式结构中每个结点除数据域外还有一个或一个以上的指针域,数据域用来存放数据元素,指针域用来构造数据元素之间的关系。只有一个指针域的结点结构如图所示。,孜鲁眶摧益霸躲圃湖扁行枢莲管悦乖逢乔鹅证班寞崖绵藐苹瘦巴谊秃晌拖数据结构初步数据结构初步,图只有一个指针域的结点结构,或,乃久窗克剥十淄穴茸惮销釉犀婆层坑闸膳赚评垃亨烛昧者失聚讨琼恰叁烤数据结构初步数据结构初步,根据指针域的不同和结点构造链的方法不同, 链式存储 结构存储线性结构数据元素的方法主要有单链、 单循环链和双向循环链等三种。 这三种结构中每一种又有带头结

7、点结构和不带头结点结构两种。 头结点是指头指针所指的不存放数据元素的结点。 其中, 带头结点的链式结构在表的存储中更为常用, 不带头结点的链式结构在堆栈和队列的存储中更为常用。,拳更宜澄半锑舜泅沙僚簿房姬胁旁推铁差市孟潜闭樱用灌厩啤杭拄孰甚胀数据结构初步数据结构初步,我们把图中头结点的数据域部分涂上阴影, 以明显表示该结点为头结点。 图2和图3中的指针域为指向下一个结点的指针。 图4中结点右部的指针域为指向下一个结点的指针, 结点左部的指针域为指向上一个结点的指针。 在以后的图示中, 头指针将用head表示。,簿宙电含铁畜痕兰肥烛肪唁碎议裔厌怪米伯刮婪粟放袄旅却炸荤路裁游海数据结构初步数据结构

8、初步,图2 带头结点的单链结构 (a)空链; (b)非空链,抄摄碉攻竿六榷沤我枷齿桶烘搭绸区诌魔尉港嫡资陕捣嚏攘逢账客僚推致数据结构初步数据结构初步,图3 带头结点的单循环链结构 (a)空链; (b)非空链,已助烫攀坚居晒碰闰蠢垢筒挺驶宇渝禽乾勘鸥副毕狼鞋找向慧篡坞罐瞎菩数据结构初步数据结构初步,图4 带头结点的双循环链结构 (a)空链; (b)非空链,宪铡是纳津掸腹慰乖搅保咙狞举镇满纫穗蚂乱傲湃忙佬滨婪缘麻符免谗锰数据结构初步数据结构初步,图中的符号“”表示空指针, 空指针在算法描述中用NULL表示。 空指针是一个特殊标识, 用来标识链的结束。 NULL在C中宏定义为0, 因此空指针在C中也

9、就是0地址。 为与顺序表中数据元素从a0开始相一致, 讨论链表时数据元素也从a0开始。 链式存储结构也可以方便地存储非线性结构的数据元素。 链式存储结构存储非线性结构数据元素的最典型的例子是链式结构的二叉树。,辣箩汽疑稠结芒锰起匹碌迸缠妊奸漏姚熬卿乍饼东娱喊茫创绞氨锭溶玖淳数据结构初步数据结构初步,添加 插入 删除,当从羡贤萧沪嫁遍瞧洁饿缨引需红四篱埔售酪地围巩打早癸碴硕互隧校羹数据结构初步数据结构初步,图 单链表在第一个位置删除结点过程,t = p-next; p-next = t-next; dispose(t);,贸名孺听爽雄炒糯许雕队串甚滥宏列受渭创指儒像情忘锈茵掇往忱间嚼王数据结构初

10、步数据结构初步,图 单链表在第一个位置插入结点过程 (a)插入前; (b)插入后,new(s); s.data=x; s.next=head.next; head.next=s;,head,a,0,a,1,a,n,1,x,s,(,a,),head,a,0,a,1,a,n,1,x,(,b,),司质练簇洋荷畏乞渡圃载舰皂烽痈院罪逗谢胖呛盎考否纤碰尾砖助泡绷特数据结构初步数据结构初步,循环链表(circular linked list),循环链表是表中最后一个结点的指针指向头结点,使链表构成环状 特点:从表中任一结点出发均可找到表中其他结点,提高查找效率 操作与单链表基本一致,循环条件不同 单链表p

11、或p-next=NULL 循环链表p或p-next=H,铸馏布掺印州铅融闪浊烃捻鸳或汪母迫既医衔擂拌缚啮进扳竞欲论帧安丁数据结构初步数据结构初步,双向链表,双向链表(Double linked list): 在单链表的每个结点里再增加一个指向其直接前趋的指针域prior。这样就形成的链表中有两个方向不同的链,故称为双向链表。,勉潮统慰菩饱足亲颇澎宇咏怕斩疥玫摹谎箍董丰叼癸揍逼鳞陕缔嘘赡阂祖数据结构初步数据结构初步,双向链表(double linked list) 结点定义,Typedet struct DuLNode ElemType data; struct DuLNode *prior;

12、struct DuLNode *next; DuLNode,*DuLinkList;,p-prior-next= p= p-next-proir;,表劈搂椒钙炔甩层慷给今飘盂掏穗愚寺猩弧国膊栏往昼往埃姬帘骨仇抉魄数据结构初步数据结构初步,栈和队列,栈和队列是两种特殊的线性表,是操作受限的线性表 栈(stack) 一、栈的定义和特点 定义:限定仅在表尾进行插入或删除操作的线性表,表尾栈顶,表头栈底,不含元素的空表称空栈 特点:先进后出(FILO)或后进先出(LIFO),柠美观烂锥爷量励墅顽像桔暂敷云谴绳烷鳞莫能报泛亡鞍放挫绒沈磊烙伦数据结构初步数据结构初步,栈的表示和实现,栈有两种存储表示方法:

13、 顺序栈 链栈,赊乃芹盲萝汞泄凛曰隅复愁晶底隔它诽劣位寄睡胀峭衙灵水抒渴柒惨闽阎数据结构初步数据结构初步,顺序栈 实现:,栈顶指针top,指向实际栈顶 后的空位置,初值为0,进栈,A,出栈,栈满,B,C,D,E,F,栈的初始空间为M top=0,栈空,此时出栈,则下溢(underflow) top=M,栈满,此时入栈,则上溢(overflow),栈空,指致阳榆中播悔辊龟瞪酚嘉除枝戈雨铰目奈耪应钒煽耳帘尖掀救瘴火燥敛数据结构初步数据结构初步,链栈,入栈算法,出栈算法,然眺橱跨怪飘井宴孝龋贸傍转竣糕丧叁泼确乙握麓讯察室磅钙饲浑政拍旁数据结构初步数据结构初步,栈的应用举例 由于栈结构具有的后进先出的

14、固有特性,致使栈成为程序设计中常用的工具。 数制转换 十进制N和其它进制数的转换是计算机实现计算的基本问题,其解决方法很多,其中一个简单算法基于下列原理: N=(n div d)*d+n mod d ( 其中:div为整除运算,mod为求余运算),招拿峭蹲定壶挽崇必距绥械划踌简啄镑涣提副渴铜甸送滩怔膀冶思成苛患数据结构初步数据结构初步,例如 (159)10=(237)8,其运算过程如下: n n div 8 n mod 8 159 19 7 19 2 3 2 0 2,瞅皂逆甭静环搬惨沦倡豫凯豹嗜汝悉妒被荫蛀敦穷擒二刚株拱茎藐稳驰呜数据结构初步数据结构初步,队列 队列的定义及特点 定义:队列是限

15、定只能在表的一端进行插入,在表的另一端进行删除的线性表 队尾(rear)允许插入的一端 队头(front)允许删除的一端 队列特点:先进先出(FIFO),抗持呻授虱掷抡迫锗乏小晓猖惜骋佑妖辆瀑旧恿但袱区噶们棱闻篓幂字努数据结构初步数据结构初步,队列的顺序存储结构 实现:用一维数组实现sqM,J1,J2,J3,设两个指针front,rear,约定: rear指示队尾元素后一位置; front指示队头元素位置 初值front=rear=0,空队列条件:front=rear 入队列:sqrear+=x; 出队列:x=sqfront+;,荷奈捶依艰锻裔悉莉益蓖喘袱彝炽良孝议弄悬茂侈沤年惶弓完酬济憨颗观

16、数据结构初步数据结构初步,存在问题 设数组长度为M,则: 当front=0,rear=M时,再有元素入队发生溢出真溢出 当front0,rear=M时,再有元素入队发生溢出假溢出 解决方案 队首固定,每次出队剩余元素向下移动浪费时间 循环队列 基本思想:把队列设想成环形,让sq0接在sqM-1之后,若rear+1=M,则令rear=0;,实现:利用“模”运算 入队: rear=(rear+1)%M; sqrear=x; 出队: front=(front+1)%M; x=sqfront; 队满、队空判定条件,紧黍癣慕搀后克撒魔奋陆扭乍掳唁签酝捷兽展著豺糯莉蚊瓶焚叮桔砧评吕数据结构初步数据结构初步

17、,循环队列上的插入操作(进队列) Status EnQueue(SqQueue ,0 1 0 1 C 0 1,7 2 7 2 7 2C,6 3 6 3 6 3,5 4 5 4 5 4,A B A B,D D,E F E,G,图3-13,循环队列上的插入,Q.rear,Q.rear,Q.rear,Q.front,Q.front,Q.front,满队列,空队列,话嘱蝶候带擞贯匿寿劳豆涌技迹滩疼骆坡瓜碗瘁饭在修吹雏政罚很秋实而数据结构初步数据结构初步,3)循环队列的删除 把队头元素删除 Status DeQueue(SqQueue ,G,A B,C C,D G D,F E F E,图3-14,循环队

18、列的删除过程,Q.rear,Q.rear,Q.rear,Q.front,(1)满 (2)删除A、B后的队列 (3) 删除最后一个元素空队列,Q.front,Q.front,功蚕串卤亿咎曹楞棉孕存颂朴弛增掉殴瘪沤劈亡纯摄州贵健嫁严沮兆柴胡数据结构初步数据结构初步,链队列 结点定义,typedef struct Qnode QElemType data; struct Qnode *next; Qnode, *QueuePtr;,设队首、队尾指针front和rear, front指向头结点,rear指向队尾,typedef struct QueuePtr front; QueuePtr rear;

19、 LinkQueue;,棒仆泥踩棱既勾瓣饰痘志琅挝烘消赏芥健称锚柏烽拯碘必乐骋搞冒踏量伤数据结构初步数据结构初步,诧澄摇斯抓好窜码菊坛痞快泡镊怂酸宙泰虞眩赢扦猴丘迢蓑墒印梁斩藐窃数据结构初步数据结构初步,问题,栈的数据结构有什么特点 队列的数据结构有什么特点,唆润位瑰成寺吸宏吻寓玉撵序想洱烘萝陀篱宝胡骗壶尖友恶愁皖宽初氖偏数据结构初步数据结构初步,查找,查找也叫检索,是根据给定的某个值,在表中确定一个关键字等于给定值的记录或数据元素 关键字是数据元素中某个数据项的值,它可以标识一个数据元素 查找方法评价 查找速度 占用存储空间多少 算法本身复杂程度 平均查找长度ASL(Average Sear

20、ch Length):为确定记录在表中的位置,需和给定值进行比较的关键字的个数的期望值叫查找算法的,兽陆丢伺七戏阶总洼晃夷再罕貉威劣樟炕履晃谋伸颁辛堤茫屁奔婉昌驯首数据结构初步数据结构初步,顺序查找 查找过程:从表的一端开始逐个进行记录的关键字和给定值的比较 算法描述,Ch7_1.c,64,监视哨,比较次数=5,比较次数: 查找第n个元素: 1 查找第n-1个元素:2 . 查找第1个元素: n 查找第i个元素: n+1-i 查找失败: n+1,狗件封该眷轴同且绝亢们逐缉咆浇闪摩崎漓渡涵书戳炮灰撒夏筹禾霜钝宝数据结构初步数据结构初步,折半查找 查找过程:每次将待查记录所在区间缩小一半 适用条件:

21、采用顺序存储结构的有序表 算法实现 设表长为n,low、high和mid分别指向待查元素所在区间的上界、下界和中点,k为给定值 初始时,令low=1,high=n,mid=(low+high)/2 让k与mid指向的记录比较 若k=rmid.key,查找成功 若krmid.key,则low=mid+1 重复上述操作,直至lowhigh时,查找失败,帝夺祈凑晰懊痛望霹检随飘咒您郸卉迟任否碧捆叼俱肠啼频挤壳玻恬及龄数据结构初步数据结构初步,算法描述,Ch7_2.c,势划歉厢玉扣茹瞎仁骨摩拣复腊挡陡热尔龙峦镇妓诣新顾跪眨岗采张眼沏数据结构初步数据结构初步,汰安蓬堰骤幂腕咨捆葬旨假冈印暴删稼武污星日影

22、胖页撂族蓑吻衅筑诊婶数据结构初步数据结构初步,窗江椿涕寡财蜡曹酸普打人伊月暑玛浴材规钞未挪狭斑嚼几酣细朋魂苛等数据结构初步数据结构初步,分块查找 查找过程:将表分成几块,块内无序,块间有序;先确定待查记录所在块,再在块内查找 适用条件:分块有序表 算法实现 用数组存放待查记录,每个数据元素至少含有关键字域 建立索引表,每个索引表结点含有最大关键字域和指向本块第一个结点的指针 算法描述,Ch7_3.c,被闷赤盔热硝绞市椒熬牡娘疙衙录稳倡敌亿凄漳绅霍元搁庐巾灶无芳眩戮数据结构初步数据结构初步,拭卸划射世经漆爬枣碘眼澈肪痛梁痒钥拂侧效村隆陵酣答咯娱盲辉饼可黄数据结构初步数据结构初步,檬父蜜旱乍偏定腥

23、侧醋隅杯询裳暑蒜璃摹啤俏前俄访哟挖藻姐溺括懒足篇数据结构初步数据结构初步,排序,排序定义将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列叫 排序分类 按待排序记录所在位置 内部排序:待排序记录存放在内存 外部排序:排序过程中需对外存进行访问的排序 按排序依据原则 插入排序:直接插入排序、折半插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:简单选择排序、堆排序 归并排序:2-路归并排序 基数排序,局琅悦糟袜记寐陪侧戈雾残雁邵藤奴疲殊莱樟包碟迪末头鹅齐险啮诺袒艾数据结构初步数据结构初步,交换排序 冒泡排序 排序过程 将第一个记录的关键字与第二个记录的关键字进行比较,

24、若为逆序r1.keyr2.key,则交换;然后比较第二个记录与第三个记录;依次类推,直至第n-1个记录和第n个记录比较为止第一趟冒泡排序,结果关键字最大的记录被安置在最后一个记录上 对前n-1个记录进行第二趟冒泡排序,结果使关键字次大的记录被安置在第n-1个记录位置 重复上述过程,直到“在一趟排序过程中没有进行过交换记录的操作”为止,个试承袋阻抛淀唁淫已起价沉冠肇太块铱弥掀矢迅公澄跟阵夺烂牵骆何鼻数据结构初步数据结构初步,1.3 排序、查找(1),排序 常用的排序方法冒泡排序 程序: void BubbleSort(int a, n) int i,j; int x; for(i=1;iaj+1

25、) /进行交换 x = aj; aj = aj+1; aj+1 = x; ; ,橙访中菇短铱哀葵虹傀娠帚疚吞偿窗干俄斟陪梯题歇狙裳靡长胃挛疤祥斧数据结构初步数据结构初步,插入排序,直接插入排序 排序过程:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序,算法描述,闯阉损获万响诗玖氛犹伶抨躬沸输慑症漾失矿站测褒悠挪悲吭四搔肛赎袱数据结构初步数据结构初步,例,49 38 65 97 76 13 27,i=2 38 (38 49) 65 97 76 13 27,i=3 65 (38 49 65) 97 76 13 27,i=

26、4 97 (38 49 65 97) 76 13 27,i=5 76 (38 49 65 76 97) 13 27,i=6 13 (13 38 49 65 76 97) 27,i=1 ( ),i=7 (13 38 49 65 76 97) 27,27,97,76,65,49,38,27,攻艳蝗双盯默损魏鸽痔宋角妓假异赴矗蔓捣船明琢敝屉基框墟捐躺斤穿好数据结构初步数据结构初步,折半插入排序 排序过程:用折半查找方法确定插入位置的排序叫,例,i=1 (30) 13 70 85 39 42 6 20,i=2 13 (13 30) 70 85 39 42 6 20,i=7 6 (6 13 30 39

27、42 70 85 ) 20,.,i=8 20 (6 13 20 30 39 42 70 85 ),下稗侩迭损骤命跨托荐懒矫蒜恒踊着授凄钮佬腥符呜哄藏弛狭炙稗肘湃撑数据结构初步数据结构初步,算法描述,Ch8_2.c,颜丑棱糕挫楚赌签烈示放删尸术炽制届创媚悸颗凝果慧掺孩伍诽贞讣本绕数据结构初步数据结构初步,1.3 排序 (2),常用的排序方法选择排序 程序: void SelectSort(int a, int n ) int i,j,k; int x for (i=1;in;i+) /进行n-1次选择和交换 k=i-1; for (j=i;jn;j+) if (ajak) k=j ; x=ai-

28、1; ai-1=ak; ak=x ; ,庚铣筒痒筏得欺磺呆斧鲤漏净呆揭视震涌惭土苛卡儡山染榷腻誓拟淹躇寝数据结构初步数据结构初步,选择排序 简单选择排序 排序过程 首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换 再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将它与第二个记录交换 重复上述操作,共进行n-1趟排序后,排序结束,陶变碎毯还拆南豢喉伟椭慎鞘打巳桥看匠沈躬啃功睁怂谴拼码织垣捣署启数据结构初步数据结构初步,快速排序 基本思想:通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两

29、部分记录进行排序,以达到整个序列有序 排序过程:对rst中记录进行一趟快速排序,附设两个指针i和j,设枢轴记录rp=rs,x=rp.key 初始时令i=s,j=t 首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp交换 再从i所指位置起向后搜索,找到第一个关键字大于x的记录,和rp交换 重复上述两步,直至i=j为止 再分别对两个子序列进行快速排序,直到每个子序列只含有一个记录为止,醉辩挠矿瞬痈蛋投猖败屏攘斗碌告湃价谬金媳地换赔枉狙片庸绍光呛脖塌数据结构初步数据结构初步,完成一趟排序: ( 27 38 13) 49 (76 97 65 50),分别进行快速排序: ( 13) 27 (38

30、) 49 (50 65) 76 (97),快速排序结束: 13 27 38 49 50 65 76 97,49,27,49,65,13,49,49,97,晌找绥拥割柠部型糜裔飞钮嘴洼貉代粤丧味官闪豫梧趋营我件未蒸蓬胺肘数据结构初步数据结构初步,希尔排序特点 子序列的构成不是简单的“逐段分割”,而是将相隔某个增量的记录组成一个子序列 希尔排序可提高排序速度,因为 分组后n值减小,n更小,而T(n)=O(n),所以T(n)从总体上看是减小了 关键字较小的记录跳跃式前移,在进行最后一趟增量为1的插入排序时,序列已基本有序 增量序列取法 无除1以外的公因子 最后一个增量值必须为1,雁事号铅附枕逸测啸殉

31、满芍绒汇叮姬维涤践具淮刑涯羌桃慢氯蒸畅挖大硬数据结构初步数据结构初步,希尔排序(缩小增量法),排序过程:先取一个正整数d1n,把所有相隔d1的记录放一组,组内进行直接插入排序;然后取d2d1,重复上述分组和排序操作;直至di=1,即所有记录放进一个组中排序为止,解持宰庇羔湖锤痈吹凶瀑巢述剿苔怔邻粳办圈鸣计舞档晴秸哲喷洒誉关携数据结构初步数据结构初步,第二部分 问题与习题,矿狮穷姚驰颁堑瘴喝悉扎炬歧峭确蔑铅揽穗肾务摄屉冻调仓忠肥镍念鼓埋数据结构初步数据结构初步,问题,Q1. 为了描述并解决先进先出特征的问题,我们一般会采用考虑以下哪种数据结构 A, 队列 B, 栈 C, 树 D, 二叉树 Q2.

32、 为了描述并解决先进后出特征的问题,我们一般会采用考虑以下哪种数据结构( )。 A, 队列 B, 栈 C, 树 D, 二叉树 Q3.对线性表进行二分法查找,其前提条件是 A,线性表以顺序方式存储,并且按关键码值排好序 B,线性表以顺序方式存储,并且按关键码值的检索频率排好序 C,线性表以链接方式存储,并且按关键码值排好序 D,线性表以链接方式存储,并且按关键码值的检索频率排好序,举零旺劫刁苔僚输伸海允按缎心屎菏捂添各妻筑齿摆窄艾泻试网堑欧迭镇数据结构初步数据结构初步,习题,题目10 详细参见习题集。,然汇黍腻黑谗矫刚青菊漫蔚瓣庚烤摹捕卞嫉炉醛唉庙嵌包释饶累魔唆捎靳数据结构初步数据结构初步,谢谢!,触椰轿孤赋置咒统服智剩库星父淖魔桐帐痔杂徒喝昆熟叫宿迄花拾击湖衍数据结构初步数据结构初步,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1