随笔分类 -  数据结构与算法

摘要:下面这个代码可能是最简单的快速排序了,采用递归的思想,每次都把基准值选为第一个元素,把小于基准值的元素放在B数组中,把大于基准值的元素放在C数组中,然后再对B数组进行快速排序,对C数组进行快速排序。当B,C数组均有序后,将B数组(全部小于基准值)+基准值+C数组(全部大于基准值)拼接成A数组即可。 阅读全文
posted @ 2019-09-05 09:42 尚修能的技术博客 阅读(190) 评论(0) 推荐(0)
摘要:题目描述 题目思路: 思路比较简单,排序然后输出即可。 C++实现 include include include using namespace std; int main() { int N; int i,j; int k; int temp; int count = 0; vector wor 阅读全文
posted @ 2019-09-02 11:19 尚修能的技术博客 阅读(141) 评论(0) 推荐(0)
摘要:题目描述 题目思路 1 第一步是如何区分插入排序和归并排序,插入排序前面一部分是有序的,后面一部分尚未处理的序列没有变化。 2 继续迭代 (1) 插入排序的继续迭代比较好实现,只要从无序部分的第一个元素开始执行一次循环即可。 (2) 归并排序的难点在于找到归并段,在找到正确的归并段后,将非递归的归并 阅读全文
posted @ 2019-09-02 09:42 尚修能的技术博客 阅读(244) 评论(0) 推荐(0)
摘要:题目描述: 题目思路: 这道题主要为了考察对AVL树的插入与旋转等操作。 C语言实现 阅读全文
posted @ 2019-08-31 17:26 尚修能的技术博客 阅读(329) 评论(0) 推荐(0)
摘要:题目描述 C语言实现 define _CRT_SECURE_NO_WARNINGS include include define MaxSize 100 typedef char ElementType; struct TNode { ElementType Elem; int Left; int 阅读全文
posted @ 2019-08-28 17:03 尚修能的技术博客 阅读(226) 评论(0) 推荐(0)
摘要:题目来源: 浙江大学在慕课网上开设的《数据结构》课,陈越老师、何钦铭老师主讲,课后作业的一道题。 https://pintia.cn/problem sets/1134360184290500608/problems/1138764336949059584 题目描述: 题目思路: 首先一定要注意,这 阅读全文
posted @ 2019-08-27 15:39 尚修能的技术博客 阅读(552) 评论(0) 推荐(0)
摘要:题目:1 将中缀表达式转换为后缀表达式 2 求后缀表达式的值 include define MaxSize 100 struct { char data[MaxSize]; int top; //栈顶指针 }op; //定义运算符栈 struct { float data[MaxSize]; int 阅读全文
posted @ 2019-08-26 21:16 尚修能的技术博客 阅读(894) 评论(0) 推荐(0)
摘要:解决散列表的冲突问题有两种办法:开放地址法和链地址法 下面的代码是采用开放地址法,平方探测时的代码。 运行结果 参考资料 1 《数据结构(第2版)》 陈越主编 高等教育出版社 阅读全文
posted @ 2019-08-24 16:39 尚修能的技术博客 阅读(1193) 评论(0) 推荐(0)
摘要:题目来源: 浙江大学在慕课网上开设的《数据结构》课,陈越老师、何钦铭老师主讲,课后作业的一道题。 题目描述 题目思路: 这个题目是求图中“每一对顶点之间的最短路径”,应用到的算法是Floyd算法。 C语言实现: define _CRT_SECURE_NO_WARNINGS include inclu 阅读全文
posted @ 2019-08-20 16:54 尚修能的技术博客 阅读(390) 评论(0) 推荐(0)
摘要:题目来源; 浙江大学在慕课网上开设的《数据结构》课,陈越老师、何钦铭老师主讲,课后作业的一道题。 题目描述: 题目思路: 使用BFS即可。 C语言实现 阅读全文
posted @ 2019-08-20 11:03 尚修能的技术博客 阅读(647) 评论(0) 推荐(0)
摘要:题目来源: 浙江大学在慕课网上开设的《数据结构》课,陈越老师、何钦铭老师主讲,课后作业的一道题。 题目描述: 题目思路: 这道题目本质上讲就是列出图的连通集,但是这个连通集的起点是有约束的:詹姆斯邦德必须第一跳能跳到的点才是连通集的起点。解决这道问题可以使用DFS。 C语言实现: 错误代码如下: 最 阅读全文
posted @ 2019-08-19 21:30 尚修能的技术博客 阅读(382) 评论(0) 推荐(0)
摘要:题目来源: 浙江大学在慕课网上开设的《数据结构》课,陈越老师、何钦铭老师主讲,课后作业的一道题。 题目描述: 思路: 非常基础的一道题,主要考察图的DFS遍历和BFS遍历,最后注意输出的格式就可以了。 C语言实现: 阅读全文
posted @ 2019-08-17 09:55 尚修能的技术博客 阅读(553) 评论(0) 推荐(0)
摘要:堆及其操作 最大堆的创建 最大堆的插入操作 最大堆的删除操作 建立最大堆 相关的代码如下: 参考资料: 1 https://www.jianshu.com/p/21bef3fc3030 最大堆(创建、删除、插入和堆排序) 2 《数据结构》(第2版) 陈越主编 阅读全文
posted @ 2019-08-13 11:18 尚修能的技术博客 阅读(174) 评论(0) 推荐(0)
摘要:二叉搜索树的算法主要包括: 从二叉搜索树中查找元素,并返回其所在节点的地址 查找二叉搜索树的最大元素 查找二叉搜索树的最小元素 二叉搜索树中插入元素 二叉搜索树中删除元素 相关代码实现如下: 实现队列的头文件和.c文件 queue.h queue.c 参考资料: 1 《数据结构》(第二版) 陈越主编 阅读全文
posted @ 2019-08-12 11:15 尚修能的技术博客 阅读(245) 评论(0) 推荐(0)
摘要:二叉树 二叉树的遍历非常重要,一定要熟练掌握。 因为二叉树的层序创建,层序遍历均用到了队列结构,二叉树的非递归遍历用到了堆栈结构,这部分的代码在后面单独给出。 二叉树的后序非递归遍历有两种实现思路,在下面的代码中只实现了一种。 二叉树的链表结构为: 二叉树部分的算法与相关代码实现 实现链表部分的代码 阅读全文
posted @ 2019-08-08 16:37 尚修能的技术博客 阅读(258) 评论(0) 推荐(0)
摘要:多项式的表示可以使用数组也可以使用链表 数组表示起来简单,调试方便。但需要事先确定数组的大小。 链表表示起来动态性强,但编程复杂,调试起来困难。 为了提高对链表的操作,后面介绍的程序,均使用链表来完成。 注意:下列链表没有头节点 参考资料: 1 《数据结构》 陈越主编 2 慕课网 《数据结构》 陈越 阅读全文
posted @ 2019-08-06 11:46 尚修能的技术博客 阅读(639) 评论(0) 推荐(0)