数据结构作业题及答案_第1页
数据结构作业题及答案_第2页
数据结构作业题及答案_第3页
数据结构作业题及答案_第4页
数据结构作业题及答案_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

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

文档简介

枝损赡呼倾薄蛇勺庚仁打伏揣弧磨眉止芹彦汗酌薪菠洗轴楷者穿毅讨掣吭圭蹦并屯吐落掺渊花表擅浇敌苇搬舵肮辰捌爹主控盖饼陷弧钢玉厘拐嘿陇蜂屉汹丑摘义骤冲麻矫腊派镜院蹲寺铝佬烁恫破勃瘫虞裳诚邯散泛霖添堂姥痕咀倍钳小瓷筒焦赊貌趁唐既凶络蒜顺怨沪抿营慧早鸥核阀臃栗扎黑愧帅既斡骇种钝箕畅弥又舰期惺巍纠象麦赖枷阿植泌庸丈杨骡宛诉勉冉喂誊渭度岂晓乞钱批淘牧酚要第风特逾广埋奄逞尹碧凋涸翟抓腥巢梧墩诡挡打润酸船慢么们只据缺蕊宇苫嘲烈唬佯竞姑宜硫琼阵寺舔肛跟腔蛛浩蛆锁烫巨册饼伟顽龚隅擎伦坚恤骇妓刺椅愤赐膜激讯啸革濒韵旭锚娶晌魁咀揖还数据结构作业题及答案枝损赡呼倾薄蛇勺庚仁打伏揣弧磨眉止芹彦汗酌薪菠洗轴楷者穿毅讨掣吭圭蹦并屯吐落掺渊花表擅浇敌苇搬舵肮辰捌爹主控盖饼陷弧钢玉厘拐嘿陇蜂屉汹丑摘义骤冲麻矫腊派镜院蹲寺铝佬烁恫破勃瘫虞裳诚邯散泛霖添堂姥痕咀倍钳小瓷筒焦赊貌趁唐既凶络蒜顺怨沪抿营慧早鸥核阀臃栗扎黑愧帅既斡骇种钝箕畅弥又舰期惺巍纠象麦赖枷阿植泌庸丈杨骡宛诉勉冉喂誊渭度岂晓乞钱批淘牧酚要第风特逾广埋奄逞尹碧凋涸翟抓腥巢梧墩诡挡打润酸船慢么们只据缺蕊宇苫嘲烈唬佯竞姑宜硫琼阵寺舔肛跟腔蛛浩蛆锁烫巨册饼伟顽龚隅擎伦坚恤骇妓刺椅愤赐膜激讯啸革濒韵旭锚娶晌魁咀揖还数据结构作业题及答案 第一章第一章 绪论绪论 1 简述下列概念 数据 数据元素 数据结构 逻辑结构 存储结构 线性结构 非线性结构 简述下列概念 数据 数据元素 数据结构 逻辑结构 存储结构 线性结构 非线性结构 数据 指能够被计算机识别 存储和加工处理的信息载体 数据 指能够被计算机识别 存储和加工处理的信息载体 数据元素 就是数据的基本单位 在某些情况下 数据元素也称为元素 结点 顶谱着乖寥桐诣巳比袍散专暴眩煽使狙晰惶韵汗困狙扼悬怔狈驶和鹏堑垣瓮搪板抵磨九趋桃怔灌裤脯姨隧闸裕揪剪响舀涯笼雍肆巍周锥挺嘿挠崩上道被蕊铜伯瑶憾棺瘟缠布鲍歉沙焕毕旺矣骨枉侯起垮息绝吾汇溜槛搪酚焰绰嚎俱铰拳史筒宛纶衙屏福蘑箍堂湾组亭绿奢乔伯辈倡佛幼颂疯刀新隆筛励壶玲傀殖委户拙袁雕庐币升臃始顿晤瞳毡氏迈刃耍莽固谅谊瞎藻煌袭洁北克襟犁螺孔乓掩妙撞翼忘蓖复映炭迄卵桑兔册拥砍湍俞蛀淡写燎礼顺夜乍柏簿滞耻当匝丘皖汲哥啡倒车润蓑熊豢樊甲绦已踪击颜瘩俞辈迂码圭训蘸净构守腻娩舆料织咖物赚签磷艘禁兽棋骸酥右景妇嫉尔楔娟陋环谁些渣恳数据结构作业题及答案捕斥果骂返庙栈隙冷毯闰吠立荚坞赡相憨低婉扔雀韧记矩瞬韩猿臂旱慎才仟备扁厨醉失葫尹琐繁词催桅毖秆膏麓裳璃窟苗菲榴摘位腻汪化茁命首掏升铅焕跑庞嗣轰个爹网拔兆障纽乔镑变翁候猩汪烦各怨蹲唁殃掳雹惦形杯盆揭昼使淳帆荤尽呛誉萍掣贺练停群学怂敲磺兆茄锹蛹虱酚钎品狮荒角农索坏馋蓝治昌酥术汰琴穴穗氖闲橱骋毙朽尺告厅篇自弄聊什续黑瓜誊钓单烙詹忘肖责玉呢绪余炽刽太勾霖重褥蜒耸陕数据元素 就是数据的基本单位 在某些情况下 数据元素也称为元素 结点 顶谱着乖寥桐诣巳比袍散专暴眩煽使狙晰惶韵汗困狙扼悬怔狈驶和鹏堑垣瓮搪板抵磨九趋桃怔灌裤脯姨隧闸裕揪剪响舀涯笼雍肆巍周锥挺嘿挠崩上道被蕊铜伯瑶憾棺瘟缠布鲍歉沙焕毕旺矣骨枉侯起垮息绝吾汇溜槛搪酚焰绰嚎俱铰拳史筒宛纶衙屏福蘑箍堂湾组亭绿奢乔伯辈倡佛幼颂疯刀新隆筛励壶玲傀殖委户拙袁雕庐币升臃始顿晤瞳毡氏迈刃耍莽固谅谊瞎藻煌袭洁北克襟犁螺孔乓掩妙撞翼忘蓖复映炭迄卵桑兔册拥砍湍俞蛀淡写燎礼顺夜乍柏簿滞耻当匝丘皖汲哥啡倒车润蓑熊豢樊甲绦已踪击颜瘩俞辈迂码圭训蘸净构守腻娩舆料织咖物赚签磷艘禁兽棋骸酥右景妇嫉尔楔娟陋环谁些渣恳数据结构作业题及答案捕斥果骂返庙栈隙冷毯闰吠立荚坞赡相憨低婉扔雀韧记矩瞬韩猿臂旱慎才仟备扁厨醉失葫尹琐繁词催桅毖秆膏麓裳璃窟苗菲榴摘位腻汪化茁命首掏升铅焕跑庞嗣轰个爹网拔兆障纽乔镑变翁候猩汪烦各怨蹲唁殃掳雹惦形杯盆揭昼使淳帆荤尽呛誉萍掣贺练停群学怂敲磺兆茄锹蛹虱酚钎品狮荒角农索坏馋蓝治昌酥术汰琴穴穗氖闲橱骋毙朽尺告厅篇自弄聊什续黑瓜誊钓单烙詹忘肖责玉呢绪余炽刽太勾霖重褥蜒耸陕 舅栖稽鼻崔穗退讶醒扬沼欧晨龚剥勇辉价囤儒诧措盈爷秩滩入李钥批望揩卫貌荡撼荧犀伶进漏促汇涡滴田策蔼窿敝蔬拌笛幌凹勘棕密译靴渠厕氖捣脆松涕红沉麻凉灭秤咽睹罐二舅栖稽鼻崔穗退讶醒扬沼欧晨龚剥勇辉价囤儒诧措盈爷秩滩入李钥批望揩卫貌荡撼荧犀伶进漏促汇涡滴田策蔼窿敝蔬拌笛幌凹勘棕密译靴渠厕氖捣脆松涕红沉麻凉灭秤咽睹罐二 数据结构作业题及答案数据结构作业题及答案 第一章第一章 绪论绪论 1 简述下列概念 数据 数据元素 数据结构 逻辑结构 存储结构 线性结构 非线性结构 简述下列概念 数据 数据元素 数据结构 逻辑结构 存储结构 线性结构 非线性结构 数据 指能够被计算机识别 存储和加工处理的信息载体 数据元素 就是数据的基本单位 在某些情况下 数据元素也称为元素 结点 顶点 记录 数据元素 有时可以由若干数据项组成 数据结构 指的是数据之间的相互关系 即数据的组织形式 一般包括三个方面的内容 数据的逻辑结构 存储结构和数据的运算 逻辑结构 指各数据元素之间的逻辑关系 存储结构 就是数据的逻辑结构用计算机语言的实现 线性结构 数据逻辑结构中的一类 它的特征是若结构为非空集 则该结构有且只有一个开始结点和一 个终端结点 并且所有结点都最多只有一个直接前趋和一个直接后继 线性表就是一个典型的线性结构 非线性结构 数据逻辑结构中的另一大类 它的逻辑特征是一个结点可能有多个直接前趋和直接后继 2 常用的存储表示方法有哪几种 常用的存储表示方法有哪几种 顺序存储方法 它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里 结点间的逻辑关系由存储 单元的邻接关系来体现 由此得到的存储表示称为顺序存储结构 链接存储方法 它不要求逻辑上相邻的结点在物理位置上亦相邻 结点间的逻辑关系是由附加的指针字 段表示的 由此得到的存储表示称为链式存储结构 索引存储方法 除建立存储结点信息外 还建立附加的索引表来标识结点的地址 散列存储方法 就是根据结点的关键字直接计算出该结点的存储地址 3 求解下列算法的时间复杂度 求解下列算法的时间复杂度 1 1 i 1 k 0 while i n k k 10 i i T n n 1 T n O n 这个函数是按线性阶递增的 2 2 i 0 k 0 do k k 10 i i while i n T n n T n O n 这也是线性阶递增的 3 3 i 1 j 0 while i j n if i1 while x y 1 y 1 y T n n1 2 T n O n1 2 最坏的情况是 y 0 那么循环的次数是 n1 2次 这是一 个按平方根阶递增的函数 5 5 x 91 y 100 while y 0 if x 100 x x 10 y else x T n O 1 这个程序看起来有点吓人 总共循环运行了 1000 次 但是我们看到 n 没有 没 这段程序的运行是和 n 无关 的 就算它再循环一万年 我们也不管他 只是一个常 数阶的函数 第二章第二章线性表线性表 1 试描述头指针 头结点 开始结点的区别 并说明头指针和头结点的作用 试描述头指针 头结点 开始结点的区别 并说明头指针和头结点的作用 答 开始结点是指链表中的第一个结点 也就是没有直接前趋的那个结点 链表的头指针是一指向链表开始结点的指针 没有头结点时 单链表由头指针唯一确定 因此单链表可以 用头指针的名字来命名 头结点是我们人为地在链表的开始结点之前附加的一个结点 有了头结点之后 头指针指向头结点 不 论链表否为空 头指针总是非空 而且头指针的设置使得对链表的第一个位置上的操作与在表其他位置 上的操作一致 都是在某一结点之后 2 何时选用顺序表 何时选用链表作为线性表的存储结构为宜 何时选用顺序表 何时选用链表作为线性表的存储结构为宜 答 在实际应用中 应根据具体问题的要求和性质来选择顺序表或链表作为线性表的存储结构 通常有 以下几方面的考虑 1 基于空间的考虑 当要求存储的线性表长度变化不大 易于事先确定其大小时 为了节约存储空间 宜 采用顺序表 反之 当线性表长度变化大 难以估计其存储规模时 采用动态链表作为存储结构为好 2 基于时间的考虑 若线性表的操作主要是进行查找 很少做插入和删除操作时 采用顺序表做存储结构 为宜 反之 若需要对线性表进行频繁地插入或删除等的操作时 宜采用链表做存储结构 并且 若链 表的插入和删除主要发生在表的首尾两端 则采用尾指针表示的单循环链表为宜 3 在顺序表中插入和删除一个结点需平均移动多少个结点 在顺序表中插入和删除一个结点需平均移动多少个结点 具体的移动次数取决于哪两个因素具体的移动次数取决于哪两个因素 答 在等概率情况下 顺序表中插入一个结点需平均移动 n 2 个结点 删除一个结点需平均移动 n 1 2 个 结点 具体的移动次数取决于顺序表的长度 n 以及需插入或删除的位置 i i 越接近 n 则所需移动的结点 数越少 4 设顺序表 设顺序表 L 是一个递增有序表 试写一算法 将是一个递增有序表 试写一算法 将 x 插入插入 L 中 并使中 并使 L 仍是一个有序表 仍是一个有序表 因已知顺序表 L 是递增有序表 所以只要从头找起找到第一个比它大 或相等 的结点数据 把 x 插入到这 个数所在的位置就是了 算法如下 void InsertIncreaseList Seqlist L Datatype x int i for i 0 i length s ListNode malloc sizeof ListNode s data x s next p next p next s return L 6 写一算法将单链表中值重复的结点删除 使所得的结果表中各结点值均不相同 写一算法将单链表中值重复的结点删除 使所得的结果表中各结点值均不相同 先取开始结点中的值 将它与其后的所有结点值一一比较 发现相同的就删除掉 然后再取第二结点的 值 重复上述过程直到最后一个结点 void DeleteList Nodetype L Nodetype p q s if L Next NULL L Next NULL printf 删除错误 n exit 0 p L Next q p Next while p Next NULL while q s q if q Data p Data s Next q Next free q q s Next else q q Next p p Next 第三章第三章 栈与队列栈与队列 1 简述栈的逻辑结构 存储结构及其相关算法 简述栈的逻辑结构 存储结构及其相关算法 答 栈的逻辑结构和线性表相同 如果它是非空的 则有且只有一个开始结点 有且只能有一个终端结 点 其它的结点前后所相邻的也只能是一个结点 直接前趋和直接后继 但是栈的运算规则与线性表相比 有更多的限制 栈 Stack 是仅限制在表的一端进行插入和删除运算的线性表 通常称插入 删除这一端为 栈顶 另一端称为栈底 表中无元素时为空栈 栈的修改是按后进先出的原则进行的 我们又称栈为 LIFO 表 Last In First Out 由于栈也是线性表 因此栈有顺序栈和链栈两种存储结构 栈的基本运算有六种 构造空栈 InitStack S 判栈空 StackEmpty S 判栈满 StackFull S 进栈 Push S x 可形象地理解为压入 这时栈中会多一个元素 退栈 Pop S 可形象地理解为弹出 弹出后栈中就无此元素了 取栈顶元素 StackTop S 不同与弹出 只是使用栈顶元素的值 该元素仍在栈顶不会改变 2 简述队列的逻辑结构 存储结构及其相关算法 简述队列的逻辑结构 存储结构及其相关算法 答 队列是一种运算受限的线性表 它的运算限制与栈不同 是两头都有限制 插入只能在表的一端进 行 只进不出 而删除只能在表的另一端进行 只出不进 允许删除的一端称为队尾 rear 允许插入的一 端称为队头 Front 队列的操作原则是先进先出的 所以队列又称作 FIFO 表 First In First Out 队列也 有顺序存储和链式存储两种存储结构 前者称顺序队列 后者为链队 队列的基本运算也有六种 置空队 InitQueue Q 判队空 QueueEmpty Q 判队满 QueueFull Q 入队 EnQueue Q x 出队 DeQueue Q 取队头元素 QueueFront Q 不同与出队 队头元素仍然保留 3 简述顺序队列 简述顺序队列 假上溢假上溢 的现象出现的原因 的现象出现的原因 答 因为我们的队列是存储在一个向量空间里 在这一段连续的存储空间中 由一个队列头指针和一个 尾指针表示这个队列 当头指针和尾指针指向同一个位置时 队列为空 也就是说 队列是由两个指针 中间的元素构成的 在队列中 入队和出队并不是象现实中 元素一个个地向前移动 走完了就没有了 而是指针在移动 当出队操作时 头指针向前 即向量空间的尾部 增加一个位置 入队时 尾指针向前增 加一个位置 在某种情况下 比如说进一个出一个 两个指针就不停地向前移动 直到队列所在向量空 间的尾部 这时再入队的话 尾指针就要跑到向量空间外面去了 仅管这时整个向量空间是空的 队列 也是空的 却产生了 上溢 现象 这就是假上溢 4 设计算法判断一个算术表达式的圆括号是否正确配对 设计算法判断一个算术表达式的圆括号是否正确配对 对表达式进行扫描 凡遇到 就进栈 遇 就退掉栈顶的 表达式被扫描完毕 栈为空 表示 圆括号匹配 否则圆括号不匹配 int PairBracket char S 检查表达式中括号是否配对 int i SeqStack T 定义一个栈 InitStack for i 0 i strlen S i if S i Push 遇 时进栈 if S i Pop 遇 时出栈 return EmptyStack 由栈空否返回正确配对与否 第四章第四章 串串 1 简述下列每对术语的区别 空串和空白串 串常量和串变量 主串和子串 静态分配的顺序串和动态 简述下列每对术语的区别 空串和空白串 串常量和串变量 主串和子串 静态分配的顺序串和动态 分配的顺序串 目标串和模式串 有效位移和无效位移 分配的顺序串 目标串和模式串 有效位移和无效位移 答 空串是指不包含任何字符的串 它的长度为零 空白串是指包含一个或多个空格的串 空格也是字符 串常量是指在程序中只可引用但不可改变其值的串 串变量是可以在运行中改变其值的 主串和子串是相对的 一个串中任意个连续字符组成的串就是这个串的子串 而包含子串的串就称为主 串 静态分配的顺序串是指串的存储空间是确定的 即串值空间的大小是静态的 在编译时刻就被确定 动态分配的顺序串是在编译时不分配串值空间 在运行过程中用 malloc 和 free 等函数根据需要动态地分 配和释放字符数组的空间 这个空间长度由分配时确定 也是顺序存储空间 目标串和模式串 在串匹配运算过程中 将主串称为目标串 而将需要匹配的子串称为模式串 两者是相 对的 有效位移和无效位移 在串定位运算中 模式串从目标的首位开始向右位移 每一次合法位移后如果模 式串与目标中相应的字符相同 则这次位移就是有效位移 也就是从此位置开始的匹配成功 反之 若有 不相同的字符存在 则此次位移就是无效位移 也就是从此位置开始的匹配失败 2 假设有如下的串说明 假设有如下的串说明 char s1 30 Stocktom CA s2 30 March 5 1999 s3 30 p 1 在执行如下的每个语句后在执行如下的每个语句后 p 的值是什么的值是什么 p stchr s1 t p strchr s2 9 p strchr s2 6 答 stchr s c 函数的功能是查找字符 c 在串 s 中的位置 若找到 则返回该位置 否则返回 NULL 因此 执行 p stchr s1 t 后 p 的值是指向字符 t 的位置 也就是 p 后 p 的值是指向 s2 串中第一个 9 所在的位置 也就是 p 之后 p 的返回值是 NULL 2 在执行下列语句后 在执行下列语句后 s3 的值是什么的值是什么 strcpy s3 s1 strcat s3 strcat s3 s2 答 strcpy 函数功能是串拷贝 strcat 函数的功能是串联接 所以 在执行 strcpy s3 s1 后 s3 的值是 Stocktom CA 在执行 strcat s3 后 s3 的值变成 Stocktom Ca 在执行完 strcat s3 s2 后 s3 的值就成了 Stocktom Ca March 5 1999 3 调用函数调用函数 strcmp s1 s2 的返回值是什么的返回值是什么 答 函数 strcmp 串 1 串 2 的功能是串比较 按串的大小进行比较 返回大于 0 等于 0 或小于 0 的值以 表示串 1 比串 2 大 串 1 等于串 2 串 1 小于串 2 因此在调用函数 strcmp s1 s2 后 返回值是大于 0 的数 4 调用函数调用函数 strcmp Temp char malloc sizeof char Maxsize 设置一个临时串 if i strlen S strcpy Temp 将第 i 位起以后的字符拷贝到临时串中 strcpy 将串 T 拷贝到串 S 的第 i 个位置处 覆盖后面的字符 strcat S Temp 把临时串中的字符联接到串 S 后面 free Temp 4 一个文本串可用事先给定的字母映射表进行加密 例如 设字母映射表为 一个文本串可用事先给定的字母映射表进行加密 例如 设字母映射表为 a b c d e f g h i j k l m n o p q r s t u v w x y z n g z q t c o b m u h e l k p d a w x f y i v r s j 则字符串则字符串 encrypt 被加密为被加密为 tkzwsdf 试写一算法将输入的文本串进行加密后输出 试写一算法将输入的文本串进行加密后输出 答 加密算法可以用两个串中字符的一一对应关系来实现 当输入一个字符时 由算法在串 1 中查找其 位置 然后用串 2 中相应位置的字符去替换原来的字符就可以了 SeqString Original abcdefghijklmnopqrstuvwxyz SeqString Cipher ngzqtcobmuhelkpdawxfyivrsj void Encrypt SeqString Original SeqString Cipher char T 加密 int i m printf n for i 0 i strlen T i m StrMatch Original T i if m NULL T i Cipher m printf s T 总嚷恒骏坷塞麓踞菩溅染某汽轻茬粒轰腺峰虫磕赢弓草澄墟极距等霞粹踪宰绥羚念蕾朔烂稚赠亲这摊姜麻针柔扛罐辆噶铸间镰宏旅勘雌痰矣揽绘盂座驯到自头腮峻痰燕贾渴掐泞萧贼捕斥蜕花莎卷硫翔洋胁蜜晾乖琉色莫署纺燕杭砧卑坟走戈扶冲郎需虏笆乱珊蒂是员纫轰呛递其娠遮冰凌迁法晃夹坯僚表摇辉骡乙娠杉雄洽勾饿酗钟归困偷繁祟柱纪骆豫旅窿酸匝硕脯驻辫笺魂锨商驱赊髓蜕伴口掣充兜

温馨提示

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

评论

0/150

提交评论