随笔分类 -  数据结构

摘要:数据结构实习 Problem H 迷宫的最短路径 题目描述 设计一个算法找一条从迷宫入口到出口的最短路径。 输入 迷宫的行和列m n 迷宫的布局 输出 最短路径 样例输入 6 8 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 阅读全文
posted @ 2017-10-26 20:49 pprp 阅读(494) 评论(0) 推荐(0)
摘要:题意如下: 已知二叉树采用二叉链表存储,其结点结构定义如下: 编写计算二叉树中节点data值等于给定x值的结点个数算法,p指向二叉树的根节点,BinaryTree为二叉树类。函数原型为: int BinaryTree::CountNode(BinTreeNode p,T x); 分析: 这个题我本来 阅读全文
posted @ 2017-10-25 21:02 pprp 阅读(2126) 评论(0) 推荐(0)
摘要:由二叉树的中序层序重建二叉树 writer:pprp 用层序中序来重建二叉树 "代码点这里" 其实本质上与前序中序建立二叉树没有什么太大区别 大概思路: 递归解法,对当前层进行处理,通过层序遍历可以得到当前的根节点,然后在中序遍历中找到该节点,对左右两边的内容进行分析,理想情况下应该是可以递归进行下 阅读全文
posted @ 2017-10-24 20:55 pprp 阅读(925) 评论(0) 推荐(0)
摘要:用前序中序建立二叉树并以层序遍历和后序遍历输出 writer:pprp 实现过程主要是通过递归,进行分解得到结果 代码如下: include include include include using namespace std; const int N = 1000; struct tree { 阅读全文
posted @ 2017-10-24 20:10 pprp 阅读(281) 评论(0) 推荐(0)
摘要:答:有以下四种方法判定循环队列的空满(假设头为front尾为rear,循环队列的最大为Maxsize) 预留一位:可以空余出来一个存储单元,不储存任何数,则判空条件是front%Maxsize == rear%Maxsize 判满条件是(front+1)%Maxsize == rear增加一个全局变 阅读全文
posted @ 2017-10-16 13:03 pprp 阅读(1252) 评论(0) 推荐(0)
摘要:题目描述 迷宫是一个二维矩阵,其中1为墙,0为路,3为入口,4为出口.要求从入口开始,从出口结束,按照 下,左,上,右 的顺序来搜索路径. 输入 迷宫宽度w 迷宫高度h 迷宫第一行 迷宫第二行 ... 迷宫第h 行 输出 入口横坐标1 入口纵坐标1 横坐标2 纵坐标2 横坐标3 纵坐标3 横坐标4 阅读全文
posted @ 2017-10-11 22:09 pprp 阅读(618) 评论(0) 推荐(0)
摘要:迷宫最短路问题 题意:从迷宫左上角到左下角,求最短路 输入:迷宫的横纵坐标和迷宫元素 输出:迷宫最短路所经过的坐标 代码如下: include include include include include using namespace std; int dx[] = {1,1,0, 1, 1, 阅读全文
posted @ 2017-10-11 21:56 pprp 阅读(711) 评论(0) 推荐(0)
摘要:2017-09-28 20:46:06 writer:pprp 题意: 迷宫是一个二维矩阵,其中1为墙,0为路,3为入口,4为出口.要求从入口开始,从出口结束,按照 下,左,上,右 的顺序来搜索路径. 分析: 采用bfs的方法,如果将所有能找到最终终点的路径都压栈,进行存储 代码如下: 阅读全文
posted @ 2017-09-28 20:49 pprp 阅读(436) 评论(0) 推荐(0)
摘要:2017-09-17 21:10:45 writer:pprp 看了看dijkstra算法,用自己语言总结一下主要过程吧, 首先,明确这个算法用处是在于计算单源最短路径问题并且边权非负,给出一个起点可以找到其他点的最短路径 复杂度为O(n^2) 思想:贪心的做法,每次只看现在的最短路的部分,但是要记 阅读全文
posted @ 2017-09-18 21:55 pprp 阅读(515) 评论(0) 推荐(0)
摘要:2017-09-18 21:53:00 writer:pprp 代码如下: 阅读全文
posted @ 2017-09-18 21:54 pprp 阅读(212) 评论(0) 推荐(0)
摘要:2017-09-18 21:15:38 writer:pprp 报告如下: 数据结构第三次作业 - 链表的逆置 问题: 编写算法,实现单链表的原地逆置操作(原地逆置即不需要新开辟空间)。单链表带有头结点,指针first指向头结点,List类以及定义节点的LinkNode类定义同课本。不需要编写能运行 阅读全文
posted @ 2017-09-18 21:17 pprp 阅读(987) 评论(0) 推荐(0)
摘要:2017-09-07 21:46:53 writer:pprp 写一下水题,调节一下心情~ 阅读全文
posted @ 2017-09-07 21:48 pprp 阅读(163) 评论(0) 推荐(0)
摘要:2017-09-07 21:18:49 writer:pprp 第一次作业: 第一道:百钱白鸡问题 第二道:分析复杂度的问题,没有弄好 第二道题: 课后作业2: 三个学生对同一问题写的算法,测试结果如下: Case1: n=10的运行时间为 student1: 1 student2: 1/100 s 阅读全文
posted @ 2017-09-07 21:24 pprp 阅读(284) 评论(0) 推荐(0)
摘要:2017-09-05 21:33:33 writer:pprp 昨天开始就上课了,没有整天整天的时间去编代码了,充分抓住每天晚上的时间吧, 今天下午预习了一下线性代数中矩阵最基本的运算,今晚就打算实现一下基本的功能 矩阵加法,矩阵减法,矩阵乘法,矩阵转置 代码如下: 阅读全文
posted @ 2017-09-05 21:37 pprp 阅读(493) 评论(0) 推荐(0)
摘要:2017-08-29 14:35:55 writer:pprp AVL树就是带有平衡条件的二叉查找树。每个节点的左子树和右子树高度相差最多为1的二叉查找树 空树的高度定为-1 对树的修正称为旋转 对内部的来说是双旋,对外部的调整修正是单旋 由于一次旋转总能解决问题,因此编写非递归程序要比编写递归程序 阅读全文
posted @ 2017-08-29 20:06 pprp 阅读(275) 评论(0) 推荐(0)
摘要:2017-08-29 11:46:37 writer:pprp 已经写了二叉树好几次了,但是还是有很多细节没有考虑完全 还有好多东西都没有考虑到,以后还是要写这个代码,把应该考虑的细节都考虑清楚 在写有关树的函数的时候都要小心地处理空树的这种退化情况 代码及讲解如下:(都测试过了,应该没问题,如果有 阅读全文
posted @ 2017-08-29 11:50 pprp 阅读(181) 评论(0) 推荐(0)
摘要:2017-08-28 17:36:28 writer:pprp 这是我第二次完全独立的去写链表,除了链表的排序部分以外, 感觉比较顺利,这种模块化的写法比较令人舒畅 这个链表储存的是一个工人的工号和他的工资,进行一系列操作 代码和说明如下: 阅读全文
posted @ 2017-08-28 17:40 pprp 阅读(235) 评论(0) 推荐(0)
摘要:2017-08-20 15:17:30 writer:pprp list是一种线性复杂度的容器,很快 其他常用的函数: 阅读全文
posted @ 2017-08-20 15:22 pprp 阅读(220) 评论(0) 推荐(0)
摘要:2017-08-19 10:58:52 writer;pprp 另外multimap用法与map类似,函数什么的都一样,只是支持一个key对多个value 阅读全文
posted @ 2017-08-19 11:00 pprp 阅读(610) 评论(0) 推荐(0)
摘要:2017-08-18 21:53:38 writer:pprp 题意如下: 题意:给你一个n代表有多少重量的冰激凌块,再给你要求的冰激凌塔的层数,冰激凌塔的规则是下一个必须等于或者大于上一层的二倍 然后给你n个重量,问你最多可以完成需要的多少个冰激凌塔 答案有二分性质,所以先进行二分,然后判断该答案 阅读全文
posted @ 2017-08-18 22:01 pprp 阅读(468) 评论(0) 推荐(0)