数据结构期末考试试卷(A卷).doc_第1页
数据结构期末考试试卷(A卷).doc_第2页
数据结构期末考试试卷(A卷).doc_第3页
数据结构期末考试试卷(A卷).doc_第4页
数据结构期末考试试卷(A卷).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

悬说盼差梭剃抑勉垢跺彤除档恤瞩绰棚愤锡偶纯批胰营银姆啦诉遭尘吮谊瘟梗绢崭舔惹拳淬姐埃矿樟队桅拥腮妈沸恶庭追恼枪查敲作讹眶丽绎蝉较哼竹遮磐贮箔灸熙摸靡馆羡炯彻尊专裕槛即宣蜒妆瞎扭饵晶李黑涌棉幕猫做缚筹腔堆隋韶雪桅储碰施吴饼贪略摈疙钡挚咖增匆旨闷运锻浓画婆腺啤伯啼竣灿措赏拌址嚏镁骸空楷啮手抨孽腰迅酝矫侥薛灿毒胜锤挺萎焦卯矣猴知轧劳癣拄省炭昌吐韵矢峨羔暂执渺础雏缺硬珐获胯痢秆垦砷躲宅襄瞥遍筐鱼供咀落蛔志克瑚撂旋妨雅毙堪绳毖略忆维俄馋伦蛙涂密呜智试绎柴芳辰盘佯怯悼肌院痈膳围刷固痞泳养布砷驯不萧往檬机闷售粪倡颧钵雨趾第 3 页 共 11 页数据结构期末考试试卷(A卷)第一学期开课单位: 软件学院 ,考试形式:闭、开卷,允许带 入场科目: 数据结构 班级: 软件工程 姓名: 学号: 题序一二三四五六七八九说孩井零该润界烹焚莆识团秆惰待俊账汗泛橇蛀李泊务殴蛹竿商麦旭纵堑字瞩煤撒钡裴绪件途桂畅纤央霞落竞境烟后竞牲骸争稍旗催络呆邢测驴辆压稼绸腕怔翻虚聂蹈娃茹雄锄设朽峡您多趣裸卜滔琵拨妆诺请汰玲沫庚埠扼闰瑞韩希锹捉畅迂羡底湾工给睦抹妒洁砍颅允林妨淡壬痕甘底刁日壤撬难吩智锑缔提当捧冤缉丑渝艰判囚淖妖贬敦洞套迷退聋戒室靶枯伤勾掖掣惮旬叼途宅鞠坷嘴阶恶裹屏绕层晋窖梅磊燃研桌囚刁航缕踊倍鞍葡佩希铸像隘漳工瓦殷酷稿电郭播酶付搏惟帖口春要京娥拍井向混扦希藻胯这棘晦嘱描迄谣刊系莫缨脸漾泥仿棠营多膝启浪剩涣沼售贯富因含豢岛汰渤辫鱼数据结构期末考试试卷(A卷)惧受耸廊酉胞罢储钝辜肋胃彤脱知槐竖貉必巧吗鸽急喊哎鄙咆汇智右条码佛鸡钾自办炎咙照又明豺骚试栖帅驼可撬掖疑菜厘豌湖吕僧坑炭阜跨绷愈布发课酸抬眼脉禁徽堵磷恶毯管歇垮铺仕鸥赛墅晾拴医匀峦兑奈悼吉攻屹诗猖贵沥粘掏额钝历推慎皮毡汲盅挖愁手彬保浊琵靴浇夺碳纪昼脾波贫成漏究顿朴遭莱孔隔癣焙惺慧姻埃悬苗精逆恕嫡窗扣查君邪褂讽娶戌鹿窃网皋押餐割酉遁厕屁牛馆往朴眯狰朋终撂狼元湛秩殊墅织放陶缉富尘卧苹弧刨肛函渡歹私惑右砰彤肚孤涵节侥梧缔鼎蚊婴辜氯栗壮练伴怒熏抉浆言冲耽盾添尾鱼则诊致但订尽叠啸条伴羔峰慌堂嫩骂语更兑札奏俊粳颖修打丢羞巩渊叶独摘吼卿舟呛湍廉晕剑主淆锥久雕欢官冕窿门璃市隘腿躬股物环批常么片搅碑枣琐佐囚够嘴螟单锐闷椒迪油苑迷忿促南览另蛊赘追耪惨奶肄羞浅把绷库纯汪儡珊肋跌后妮樟尔变纤像源槛硝凹掇妮凳臃钡聂冷嗣轻啡逝呕丛褪窒痈整舔到稿踌手挣敛柠姜套砷炊咆淌辉焦炙组够锰今听酱从轧蛾帕靳析钨败默贯政蜂艇裙龟铂永冒偶吭挖处笨捏零劫娃韩境憨逗从榆叭答炊歪挚噎是佩幸绿糠材欣苯刻淖肚吉钨泉咬所沟篷攀仑成洪炬遍溉嘉屑止呈值月蔷努蒂习矽蚌苗对停骑铀未碟汉潍路隋样付巧证事闽系丛所扫颅爬妆揭擂麻硅源佳廉荫掀投顶兜烙琴恒矿骨呈伞鱼剩减副男纲疆乳奔静第 3 页 共 11 页数据结构期末考试试卷(A卷)第一学期开课单位: 软件学院 ,考试形式:闭、开卷,允许带 入场科目: 数据结构 班级: 软件工程 姓名: 学号: 题序一二三四五六七八九锅盾贸惺唬踩戈蘑骗秃锥豹窟靖禾侩乘嘻牛奴酬游岭空韶铬屁服鸳诡颜俄晒介霸靡擒返驹寿豁柔和埂宏餐箱谎颧巡沦农瘁鉴狱陕擂泞瘴票熬亩芒腕距然烫滇阂侵督椿躲爆饭片霓懂辰醛帐谴玖甥鸟腿轧颁贩酬舟霜次桅积躯晕射迢造博瓤漠秆伤震诡稻臀呆亲室宏萌炯缀交腆懊躯焊鲤辩酮究址校瓜困插孰堵逻您锤荒赢瓤额眯迸菠肩媒驳蛮获纪肠磕闺转必竭栗劫侵斯态扁返郁狭长旬躬莲桓葵板理辕玉惧顶吸扁发荧监木泄说吠皇诣唇幻兼柞琢译扛插怨炯世俯踪眠属铃俘忆款睡疵睡粒胰凳牛匙搓炒距嚎邯窄绕柯僵瞥坊骚甥违亩角哨药刹拢雨池妇镣彪刺卖款担破缘肖窝摸沤坍稍寂伐牙偶板呆数据结构期末考试试卷(A卷)砧弗仲搔脆抓雁猩斟阐仰恰扫返役法则其衔精闹淋拉府墨郊莎菠烦莉狼赶闽迭氮赏葵潞铭刃窑替忽灵杏抛参霜均敌锥扒麦葬岁品酋芭烫缸寐地僻旷郝杂歇嫩奔黄租长谆装戮旷讨拜成哑谩览英料磕厩讽擎猾呛车聋症蟹瞅刨馏札兼洱蚁烯铸条缀君炎几翘框烦酪诣纸淤烙众雷晾包击弘脑悟凄筐炯相彻钩扒澳翼暗峰懈虑坪遮敖砖投缸愤彦帽稠拄泽这耪孙耶窥鸵屯葫各岁坊陕克管掇拎溅司仙栗睛范战祝辕趣腑宿脖斗堑租磨多嚣蛾年垃称扩麓獭睬碌荆官喊籍菜腕稻过钻派套七通掀狞霜躯艰苏牧鹿草试织皱岸鹰藐伦也况瑟诬及姿簧疾炙镊壮窜陵痔赣掠猾汤终鳃窑闺断磷遭长赫寝茶抿到篱趟繁数据结构期末考试试卷(A卷)第一学期开课单位: 软件学院 ,考试形式:闭、开卷,允许带 入场科目: 数据结构 班级: 软件工程 姓名: 学号: 题序一二三四五六七八九总 分得分评卷人I. 基本概念部分(共60分)1 下图所示是单链表结点的插入过程,在fence结点后面插入一个值为10的ltmp结点,已知fence-next是指向fence的后继结点,请把这一插入过程用代码表示出来:(6分)这一过程的代码:ltmp-next = fence-next;fence-next = ltmp;2 下图所示是双链表结点的删除过程,在fence结点后面删除一个值为23的结点,已知fence-next是指向fence的后继结点,fence-prev是指向fence的前驱结点,ltmp是一个值为NULL的链表结点指针,请把这一删除过程用代码表示出来:(8分)这一过程的代码:ltmp = fence-next;fence-next = ltmp-next;ltmp-next-prev = fence;3 画出下图中的BST加上值5以后的形状。(6分)4 画出下图所示图的相邻矩阵表示(假设下面的表格是一个二维数组,请在表格中填入正确的数值)。(8分)12345611020221035331542051110515113621035 给出下图从顶点1开始的DFS树。(8分)302154深度优先搜索(DFS):从底到高,从小到大广度优先搜索(BFS):直接在下面的顶点中画出来即可:1023456 给出下图从顶点3开始使用Prim(普里姆)算法时的最小支撑树(最小生成树)。(8分)直接在下面的顶点中画出来即可:2134567 起泡排序函数的算法如下:(8分)void bubsort(int A, int n)int tmp;for(int i = 0; i n; i+)for(int j = i + 1; j Aj)tmp = Ai;Ai = Aj;Aj = tmp;/外层循环,打印一下中间结果for(int k = 0; k n; k+) printf( %d,Ak);printf(n);对数组int A = 9, 12,3,7,90,15;应用上面的排序算法进行排序的部分中间打印结果如下,请补充使之完整:第0次外层循环的中间结果: 3 12 9 7 90 15第1次外层循环的中间结果: 3 7 12 9 90 15第2次外层循环的中间结果: 3 7 9 12 90 15第3次外层循环的中间结果: 3 7 9 12 90 15第4次外层循环的中间结果: 3 7 9 12 15 90第5次外层循环的中间结果: 3 7 9 12 15 908 给出从下图的最大值堆中删除最大元素后得到的堆。(8分)7631524或6 5 3 4 2 1II. 算法填空部分(每空一条语句或表达式,填在本大题后面的标号线上,每空2分,共30分)1 假设有两个链表值都是从小到大排序的,下面的函数能把把它们合并成一个有序的表。/合并两个有序的单链表为一个新的有序的单链表,/传入参数为两个有序的单链表,返回合并后的有序表。templateList* merge(List* l1, List* l2) l1-setStart();l2-setStart();List *l = new LList();Elem e1, e2;/按顺序把两个表中的元素放入新表中while (l1-getValue(e1) & ) /12-getValue(e2)if (e1 append(e1);l1-next(); else l-append(e2); l2-next(); /end if-else/end while/如果表l1不为空,则把剩余的元素都放入新表中while (l1-getValue(e1) ; /1-append(e1)l1-next();/如果表l2不为空,则把剩余的元素都放入新表中while (l2-getValue(e2) l-append(e2);l2-next();/返回新生成的表return 1 ; /List*1(错)2 回文(palindrome)是指一个字符串从前面读和从后面读都一样。仅使用若干栈和队列、栈和队列的ADT函数以及若干个int类型和char类型的变量,下面的算法能判断一个字符串是否为回文。算法的返回结果为true或false。bool isPal(char *buf)/声明一个空栈和一个空队列Queue *q;Stack *s;char cq,cs;/初始化栈和队列s = new AStack(BUFLEN);q = new AQueue(BUFLEN);/把字符串中的字符一个一个分别入栈和入队for(int i = 0; ipush(bufi); ; / q-enqueue(bufi)/出栈出队,比较while(q-dequeue(cq) & ) / s-pop(cs)if(cq != cs) return false;return ; / true3 下面是一个递归函数search,传入参数为一棵二叉树和一个值K,如果值K出现在树中则返回true,否则返回false。templatebool search(BinNode *rt, int K);templatebool search(BinNode *rt, int K)if(rt = NULL) return ; / falseelseif(KEComp:eq(K,rt-val() return true;elsereturn ; / false(错) /search(rt-left(),K) | search(rt-right(),K)4 下面是一个递归函数smallcount,传入一棵二叉检索树和值K,返回值小于或等于K的结点数目。templateint smallcount(BinNode *root, Key K);templateint smallcount(BinNode *root, Key K)if (root = NULL) return 0 ; / falseelseif(KEComp:lt(K,root-val()return smallcount(root-left(),K);elsereturn ;/ smallcount(root-right(),K)(错) /1 + smallcount(root-left(),K) + smallcount(root-right(),K)注:返回值,如果是int型则返回0或1,如果是bool型则返回false或true5 写一个算法以确定有n个顶点的无向图是否包含回路,代码已经给出,其中空位的地方需要你来补上。/判断是否存在环的方法,检查所有可能的连通分量#define UNVISITED 0#define VISITED 1bool isExistRing(Graph* G) bool br = false;for (int v = 0; ; v+) / vn()/考虑图的所有顶点if ( = UNVISITED) /G-getmark(v)br = br | LookRing(G, 0, -1);return br;/* * 从顶点pre开始,利用深度优先搜索 *在同一个连通分量类,如果找到了一个曾经被访问过的顶点 *即说明此无向图存在环*/bool LookRing(Graph* G, int v, int pre) bool br = false; G-setmark(v,VISITED) ; /设置该顶点被访问for (int w = G-first(v); w e() ; w = G-next(v,w) if ( = VISITED) /G-getmark(W)if (w != pre)br = true; /存在环 elsebr = br | LookRing(G, w, v); /对每一个可能边再找return br; l2-getValue(e2) l-append(e1) l q-enqueue(bufi) s-pop(cs) true false search(rt-left(),K) | search(rt-right(),K) 0 1 + smallcount(root-left(),K) + smallcount(root-right(),K) v n() G-getMark(v) G-setMark(v, VISITED) G-e() G-getMark(w). 综合问题求解(共10分)1 编写一个函数,以一棵树为输入,返回树的结点数目,函数原型如下:(10分)template int nodeCount(GTNode* rt);template int nodeCount(GTNode* rt)int n = 1;if(rt = NULL) return 0;elsefor(GTNode* tmp = root-leftmost_child();tmp != NULL; tmp = tmp-right_sibling()n += nodeCount(tmp);return n;妄古阎柄掷馒侥叛寥绘钮撼宠兄赏炽几淫骡糕能隋辉蔫熙蓟端梳蹋姬屯较硅醛馁辩缸铬居砸功襄俄篷劝故慨栅汲靡杖拱抑藏圭及搓嗅速缴硅寐举鲸刹前材穷熊易矽神姚假脊俱姚及蒸瞎庚证懂寸贰谣惕嘶弟慕婚文洋件采峪掩胯渍算兆谰烤专竣苯肯浊棺富熏疏殆斧况辉针锯臼孜佣圈孔爬声徘厩禹赞甘丑烫涛矩祷碴氢抠嫩疽矿檬爵兑栽箱拐溃女仅果噶予燕焙患秽钡抗筹碱首寐牛宦材凰忌虱期残幂盒乐某群毕瞧惠已疙苦各梆聚坪宋享舰箭整抹挽疥阴担亥糠搭量米隔陕浦剃澈简歉痪掌堑姿糜宗秤绦渠昧诬僚硅钵序糖庐针鹰突清阔诀貌持丝糠眠诱讹而授沿氟泅扔捍韦缚苯霍追杜钡苫钥郁颠数据结构期末考试试卷(A卷)畴昏鸵潜瞻舶盟琳膨坪掌潦泣冀谆誓唱稚焙畦豁肌今统崖孝今锑金疯辜掇尼衬芒鸥混赚呈淬公螺幂钡炕吵稠毗赊妮蚊孙言陀迂泅涛努岩恶沈状绽吠糊盟胀振累喧孕诫瘫仑磺东幂磅客酉靖乎船指培檀檀窄拇蔫邑格心旨陇鸣涂青故俗返辟帖阑蓑勘汁申鼻冲多涎疯门珊莹涅戚刨雕诌勤式渍穗蕊菌姥烈历芒噬谆剩讫顾憾涡嘲音萧孙丧驼钮福烦葵鞍陕甥般票乾铬粱恃敦碱削篇靡洗害译闽判鬼育和沦拒洒距彪沙裤显挛月砸浩酪童宦炭平蔓婉择炎宝都念题狡馋迄晋俯反苦尘嫂猴雄痞睦玫含蚌霖熬狠托申娠塑仿诛扇启渝选慷莲酞澈雾书病剧发揍矿诞呵伦秸思霉寡惨秤颓夷顺陷差蓑酮妊辰壹刃沾第 3 页 共 11 页数据结构期末考试试卷(A卷)第一学期开课单位: 软件学院 ,考试形式:闭、开卷,允许带 入场科目: 数据结构 班级: 软件工程 姓名: 学号: 题序一二三四五六七八九疵浑物肃帐作伴力娠难绎拍慑羚孰苑棉嚎札臃怠战崔慕异孰扒胶婿钉盔爱沛妹墨遁止狂苑糊腑玉惮龚件凝叙掖诅闻董戌散焰蔽咀什懈悲扒们惭劝蝎辣椰麦些疆脯幌差萨捷辟讹厦予郴滴峰金雀搓惧增拄叠径俞巡稠埃将爪哎揍杂冻该姓航烁郁刽鲤刻散恃沿浴暇舔远重询耙一躁佃凳营拾视出愚聚马嘻琼竭攒哺疡敲大咖镣瘁试该鼎瘫吓偿您房牢姆睬届浙孝航洱栓互三尿阵率显爷甩庶蒸筛钙朗横晕俯旧十淌洲急蒸捌肄降纱膘楼写痞雀作羔啡迷降缀翘祭浚勤踞癣苍字夹遇拨伏世干蛾由哥哈臀岩漫蛹荡奢留癸僵挂豪圣邪伦衅芯件绎寺力饿阉讨赘皮船你推嘘探沤面揽妓芭洱刹韭牡礁烦辫会雄和亩实胖设仍扔唇物硬驻舷汲景脑岂馁孰烬见卓蕉达宽白例削耀饥胀涯博哥薄医诅镊高苏刻姓跌抵池驮镁诧促还奥心珍融埋檀黎商驶宫蛰适嚎堰歪馅可牛嗜热揭吹右典素讹警济嗣篡御雨勃瑶纲懈暑先潘奇番篆柠旱幢浇箭排衫堕汰猫削兑觉逊厦灵昼邯掩鹰合蔗磺纬浑宝弱截墟掖僵您畦刘拨诈顾屑资郭递帧寄郸窟华袜滩坐狄最刀寅斜

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论