数据结构
nkuhjp
这个作者很懒,什么都没留下…
展开
-
用c++实现单向链表和双向链表
链表是一种非常基础的数据结构,本身也比较灵活,突破了数组在一开始就要确定长度的限制,能够做到随时使用随时分配内存。同时还有添加,删除,查找等功能。总的来说,链表是由几个模块构成的。 一,单向链表//链表基本元素struct Node{ int num; Node * next;};//创建节点 Node * current=nullptr; Node * head原创 2016-05-20 19:58:28 · 1157 阅读 · 1 评论 -
迷宫寻址代码分析
最近学了堆栈,里面有个迷宫寻址的程序蛮有意思的,觉得程序的思路也很厉害。以下代码的迷宫寻址函数是《数据结构、算法与应用 C++语言描述》上的,自己也有一点小的改动。其中关于代码的分析都在注释中了,希望能看懂。#include<iostream>using namespace std;struct Position{ friend ostream& operator<<(ostrea原创 2016-10-30 23:14:40 · 549 阅读 · 0 评论 -
二叉树中的先序遍历、中序遍历和后序遍历关系
先序、中序以及后序遍历是我们遍历二叉树常用方法,当然还有层级遍历。前三者属于深度优先遍历,后者属于广度优先遍历。今天我们谈谈前面三种遍历的关系。即,已知先序、中序、后序遍历中的哪几种可以确定一棵树的结构,从而得出另一种或两种遍历的结果。 首先假设我们只知道三种遍历中的一种的结果。显然只知道一种遍历结果不能确定一棵树的结构,先序遍历和后序遍历只能找到根节点,不能判断左右子树;中序遍历甚至连根节点都找原创 2016-11-17 14:24:33 · 7151 阅读 · 0 评论 -
用二叉树存储计算四则运算表达式
这是数据结构课作业,写了很久,代码主要思路参考了网上某个博客(但忘了是哪个博客),不过也融入了我自己的一些思路。//将字符串类型的四则运算表达式存入二叉树中,支持小数运算和多级括号运算,同时能够将二叉树结构输出到屏幕或者某个txt文件(一棵横着的二叉树),目前一大缺陷是不能检查输入是否有误,/*测试样例:1+2 1*9/3 764+743/90*45+56-87 8*(9+2*(3+(4*原创 2016-11-27 16:10:32 · 7097 阅读 · 4 评论 -
检查图是否包含环
我们常常用检查一张图中是否包含环来判断是否可以对这张图进行拓扑排序。但是对于无向图,由于无向图中每条边都可以表示成其对应某点的入边和出边,所以不能用拓扑排序的方法来检查是否包含环。但是我们可以用DFS方法来进行检查:从某一个点开始进行DFS遍历,如果在某个点所连接的点中,包含一个已经经过过的且不是这个点的父节点的点,说明有环。 代码://有向图bool checkLoop(vector<vect原创 2017-03-06 15:41:15 · 531 阅读 · 0 评论