IT Education 数据域 int next 后继域 Node t PNode t 提供的操作有 初始化 插入 删除等 IT Education 数据域 Node t next 后继域 Node t PNode t 提供的操作有 初始化 插入 删除等 数据1 后继 数据2 后继 数据3 后继 数据n 1 后继 数据n end IT Education struct Node Next typedef struct Node Node t IT Education a next a next next dispose p IT Education s data x s next a next a next s heada0a1 an 1 xs a heada0a1 an 1 x b IT Education struct DuLNode prior struct DuLNode next DuLNode DuLinkList priorelement next L空双向循环链表 非空双向循环链表 LAB bca p p prior next p p next proir IT Education 出队列 x sq front rear rear front rear 1 2 3 4 5 0 J1 J2 J3出队 J1 J2 J3 front front front IT Education 0 M 1 1 front rear 实现 利用 模 运算 入队 rear rear 1 M sq rear x 出队 front front 1 M x sq front 队满 队空判定条件 IT Education 队列满 Q base Q rear e 新元素存放到队尾 Q rear Q rear 1 MAXQSIZE 修改队为指示器 return OK 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 rearQ rear Q rear Q front Q front Q front 满队列 空队列 IT Education 队列空 e Q base Q front 删除当前队头元素 Q front Q front 1 MAXQSIZE 修改队头指示器 returnOK G A B C C D G D F E F E 图3 14 循环队列的删除过程 Q rear Q rear Q rear Q front 1 满 2 删除A B后的队列 3 删除最后一个元素空队列 Q front Q front IT Education struct Qnode next Qnode QueuePtr 头结点 front 队头队尾 rear 设队首 队尾指针front和rear front指向头结点 rear指向队尾 typedef struct QueuePtr front QueuePtr rear LinkQueue IT Education int x for i 1 i n i for j 0 ja j 1 进行交换 x a j a j a j 1 a j 1 x IT Education int x for i 1 i n i 进行n 1次选择和交换 k i 1 for j i j n j if a j a k k j x a i 1 a i 1 a k a k x IT Education 定义并初始化区间下界和上界变量 int mid 定义保存中点元素下标的变量 while low high mid low high 2 if x a mid return mid else if xr 2 key 则交换 然 后比较第二个记录与第三个记录 依次类推 直 至第n 1个记录和第n个记录比较为止 第一趟 冒泡排序 结果关键字最大的记录被安置在最后 一个记录上 对前n 1个记录进行第二趟冒泡排序 结果使关 键字次大的记录被安置在第n 1个记录位置 重复上述过程 直到 在一趟排序过程中没有进 行过交换记录的操作 为止 IT Education TrainingDate 20 December 2012 例 49 38 65 97 76 13 27 30 初始关键字 38 49 65 76 13 27 30 97 第一趟 38 49 65 13 27 30 76 第二趟 38 49 13 27 30 65 第三趟 38 13 27 30 49 第四趟 13 27 30 38 第五趟 13 27 30 第六趟 38 49 76 9713 9727 9730 97 13 76 76 7627 30 13 6527 6530 65 13 13 49 4930 4927 3827 3830 38 IT Education TrainingDate 20 December 2012 算法描述 算法评价 时间复杂度 最好情况 正序 比较次数 n 1 移动次数 0 最坏情况 逆序 比较次数 2 1 2 1 1 nnin n i 移动次数 2 3 3 2 1 nnin n i T n O n 空间复杂度 S n O 1 Ch8 4 txt Ch8 4 c IT Education TrainingDate 20 December 2012 快速排序 基本思想 通过一趟排序 将待排序记录分割成独 立的两部分 其中一部分记录的关键字均比另一部 分记录的关键字小 则可分别对这两部分记录进行 排序 以达到整个序列有序 排序过程 对r s t 中记录进行一趟快速排序 附设两个指针i和j 设枢轴记录rp r s x rp key 初始时令i s j t 首先从j所指位置向前搜索第一个关键字小于x的 记录 并和rp交换 再从i所指位置起向后搜索 找到第一个关键字大 于x的记录 和rp交换 重复上述两步 直至i j为止 再分别对两个子序列进行快速排序 直到每个子 序列只含有一个记录为止 IT Education TrainingDate 20 December 2012 例 初始关键字 4938 65 97 76 13 27 50 ij x ji 完成一趟排序 27 38 13 49 76 97 65 50 分别进行快速排序 13 27 38 49 50 65 76 97 快速排序结束 1327 38 49506576 97 4927 i ji j ij 4965 j i 1349 i j 4997 ij IT Education TrainingDate 20 December 2012 选择排序 简单选择排序 排序过程 首先通过n 1次关键字比较 从n个记录中找出关 键字最小的记录 将它与第一个记录交换 再通过n 2次比较 从剩余的n 1个记录中找出关 键字次小的记录 将它与第二个记录交换 重复上述操作 共进行n 1趟排序后 排序结束 IT Education TrainingDate 20 December 2012 例初始 49 38 65 97 76 13 27 k jjjjjj kk i 1 13 49 一趟 13 38 65 97 76 49 27 i 2 kk jjjjj 2738 二趟 1327 65 97 76 49 38 三趟 132738 97 76 49 65 四趟 13273849 76 97 65 五趟 1327384965 97 76 六趟 132738496576 97 排序结束 13273849657697 Ch8 6 txt IT Education TrainingDate 20 December 2012 堆排序 堆的定义 n个元素的序列 k1 k2 kn 当且仅当满足下列 关系时 称之为堆 或 i 1 2 n 2 ki k2i ki k2i 1 ki k2i ki k2i 1 例 96 83 27 38 11 9 例 13 38 27 50 76 65 49 97 96 27 91138 83 13 2738 49657650 97 可将堆序列看成完全二叉树 则堆顶 元素 完全二叉树的根 必为序列中 n个元素的最小值或最大值 IT Education TrainingDate 20 December 2012 堆排序 将无序序列建成一个堆 得到关键字最小 或最大 的记录 输出堆顶的最小 大 值后 使剩余的n 1个元素重又建成一个堆 则可得到n个 元素的次小值 重复执行 得到一个有序序列 这 个过程叫 堆排序需解决的两个问题 如何由一个无序序列建成一个堆 如何在输出堆顶元素之后 调整剩余元素 使之 成为一个新的堆 第二个问题解决方法 筛选 方法 输出堆顶元素之后 以堆中最后一个元素 替代之 然后将根结点值与左 右子树的根结点 值进行比较 并与其中小者进行交换 重复上述 操作 直至叶子结点 将得到新的堆 称这个从 堆顶至叶子的调整过程为 筛选 IT Education TrainingDate 20 December 2012 例 13 2738 49657650 97 97 2738 49657650 13 输出 13 27 4938 97657650 13 输出 13 97 4938 27657650 13 输出 13 27 38 4950 27657697 13 输出 13 27 65 4950 27387697 13 输出 13 27 38 IT Education TrainingDate 20 December 2012 49 6550 27387697 13 输出 13 27 38 76 6550 27384997 13 输出 13 27 38 49 50 6576 27384997 13 输出 13 27 38 49 97 6576 27384950 13 输出 13 27 38 49 50 65 9776 27384950 13 输出 13 27 38 49 50 97 6576 27384950 13 输出 13 27 38 49 50 65 IT Education TrainingDate 20 December 2012 76 6597 27384950 13 输出 13 27 38 49 50 65 97 6576 27384950 13 输出 13 27 38 49 50 65 76 97 6576 27384950 13 输出 13 27 38 49 50 65 76 97 IT Education TrainingDate 20 December 2012 第二部分 问题与习 题 IT Education TrainingDate 20 December 2012 问题 Q1 为了描述并解决先进先出特征的问题 我们一般会采用考虑以下 哪种数据结构 A 队列B 栈C 树D 二叉树 Q2 为了描述并解决先进后出特征的问题 我们一般会采用考虑以下 哪种数据结构 A 队列B 栈C 树D 二叉树 Q3 对线性表进行二分法查找 其前提条件是 A 线性表以顺序方式存储 并且按关键码值排好序 B 线性表以顺序方式存储 并且按关键码值的检索频率排好序 C 线性表以链接方式存储 并且按关键码值排好序 D 线性表以链接方式存储 并且按关键码值的检索频率排好序

展开阅读全文

数据结构c语言版谭浩强pdf,谭浩强C语言_数据结构.pdf相关推荐

  1. ht66f 单片机 c语言版,HT66Fxx Flash单片机原理与实践(附光盘C语言篇)

    导语 钟启仁编著的<HT66Fxx Flash单片机原理与实践(C语言篇)>主要针对HT66x0系列单片机的特性.功能及相关的外围模块,并以Holtek C语言编写应用程序,编辑成一系列的 ...

  2. 武汉工程大学c语言作业,武汉工程大学2016考研《数据结构(C语言版)》考试大纲...

    2016考研学习交流群:410257364 考试大纲作为考研学子备考复习的方向指南,每年都备受关注,尤其是当年新考试大纲.建议各位考生朋友,在借助往年考试大纲进行复习时,及时关注新考试大纲,以便积极应 ...

  3. tushare 金融数据获取(R语言版)

    在上次 tushare正确爬取 指数数据文章后,看到后台有人留言说是希望能分享一个R语言版,那么好,你们要的R语言版今天来了. 首先,R语言只支持tushare pro,不支持tushare,因此在使 ...

  4. 【数据结构】Java版

    有趣有内涵的文章第一时间送达! 喝酒I创作I分享 生活中总有些东西值得分享 @醉翁猫咪 想你吴亦凡;赵丽颖 - 想你 你是程序猿对吗?会写代码的那种? 我是打字猿?会打代码的那种? 现在告诉大家一个很 ...

  5. 乐意微信HOOK培训教程(易语言版)价值1500元

    乐意微信HOOK培训教程(易语言版)价值1500元 1_认识Hook 2_Hook的分类_ 3_学习Hook必备的知识_ 4_实现简单的Hook流程_ 5_Hook的基本代码讲解和实现_ 6_API_ ...

  6. c程序设计语言看第几版,到底该怎样评价谭浩强版《C程序设计》?

    原标题:到底该怎样评价谭浩强版<C程序设计>? 我想学过C语言的人都应该对谭浩强版<C程序设计>不陌生,有人对它大加赞赏,也有人对它吐槽颇多.那我们究竟应该怎样看待这本书呢?今 ...

  7. C语言学习笔记(C程序设计-谭浩强)

    入门: 计算机程序: 一组计算机能够识别和执行的指令.计算机的每一个操作都是根据指令进行的,计算机的一切操作都是由程序控制的 计算机指令:指挥机器工作的指示和命令. 指令包含操作码和操作数,操作码决定 ...

  8. 数据结构C语言 胡学钢 PDF,数据结构(C语言版) 胡学钢.ppt

    数据结构(C语言版) 胡学钢 2.3 链表--单链表的应用(头结点) 设计算法,判断带头结点单链表L是否递增?若递增,则返回true,否则返回false. 分析: (1)链表空,返回true: (2) ...

  9. 数据结构c语言版袁和金答案,_数据结构_课程教学中的案例设计及应用_袁和金.pdf...

    _数据结构_课程教学中的案例设计及应用_袁和金 第 16 期 90 2013 年 8 月 25 日 Computer Education G642 袁和金 (华北电力大学 计算机系,河北 保定 071 ...

  10. 数据结构c语言版入门教材,《数据结构(C语言版)》C语言-教材-数据结构.pdf

    数 据 结 构 ( C 语 言版 ) 孟祥瑞 汤文兵 编著 胡胜利 葛 斌 华东理工大学出版社 内 容 提 要 <数据结构>(C 语言版) 是为"数据结构"课程编写 的 ...

最新文章

  1. Swift学习: 从Objective-C到Swift
  2. 常见基本不等式的几何解释
  3. 重构是提高可测试性的主要手段 《设计模式》《代码重构》《从重构到模式》 《反模式》 重构时机 编写测试时候 修改BUG时候
  4. javax.ws.rs.Path注解@Path的工作原理解析
  5. ios点击大头针气泡不弹出_iOS高德地图之自定义大头针and泡泡view
  6. NILMTK在Windows下的安装教程
  7. LeetCode 2195. 向数组中追加 K 个整数(贪心)
  8. 腾讯这套SpringMVC面试题你懂多少(面试题和答案)
  9. 屏蔽掉Accordion控件的键盘事件.
  10. K3CLOUD成本管理参数解释
  11. 快速给PDF批量添加目录
  12. ADSL共享上网(简单方法)
  13. 修改jsp代码之后浏览器报500错误问题以及解决方法
  14. 前端好用的框架及工具
  15. 实验报告:定义一个名为MyRectangle的矩形类,完成如下要求
  16. python下载电影_Python抓取电影天堂电影信息的代码
  17. 文献阅读总结--合成生物学工程促进大肠杆菌中莽草酸的高水平积累
  18. libs--libnet
  19. 该不该造自己的轮子?
  20. php聊天动图,聊天室技术 -- 贴图的实现_PHP教程

热门文章

  1. 学习java开发培训
  2. 斯福尼健康采暖,终结健康杀手——雾霾
  3. Servlet中的Response(HTTP响应对象)用法及笔记
  4. 12. SSL和TLS有关知识
  5. 适用于中小企业服务器租用托管
  6. 华为Ascend昇腾CANN详细教程(二)
  7. 为知所见即所得MarkDown插件
  8. HA高可用集群与RHCS集群套件
  9. 【转载】如果你是ACMer,你会选择哪个职业?(来自shǎ崽)
  10. python中的内置高阶函数