数据结构
文章平均质量分 55
数据结构基本操作及面试题
4559
这个作者很懒,什么都没留下…
展开
-
实现栈和队列
1:实现栈和队列 typedef int DataType; typedef struct Stack { DataType* _array; size_t _top; //栈顶 size_t _end; }Stack; // 栈的实现接口 void StackInit(Stack* s); void StackPush(Stack* s, DataType x); voi...原创 2018-08-09 00:08:50 · 170 阅读 · 0 评论 -
二叉树的基本操作
#include "queue.h" BTNode* BuyBTNode(BTDataType x) { BTNode* root = (BTNode*)malloc(sizeof(BTNode)); root->_data = x; root->_left = NULL; root->_right = NULL; return root; } // 创...原创 2018-08-12 19:37:18 · 159 阅读 · 0 评论 -
非递归方法遍历二叉树
[TOC] 前序遍历 思路: 前序遍历由图示是先一里路向左全递归压栈并且边压栈边打印,直到左指针为空,然后得到栈顶指针,并出栈,找该栈顶结点的右结点,如果不为空,同样的一路左递归压栈,边压栈边打印,直到左指针为空,然后重复,最后栈为空停止。 中序遍历 思路: 和前序遍历不一样的地方只是打印的地方不一样,一个是顺着一步一步入栈的时候打印,一个是出栈前打印,这样会导致结点数据和结点左指...原创 2018-08-13 01:07:54 · 212 阅读 · 0 评论 -
栈和队列的迷宫问题
前言 一说到走迷宫,计算机走出迷宫的方式其实是最蠢却有效的方式,即遍历所有的路径,然后找到出口,当我们遍历每一个坐标点时候,如果利用栈去保存每个有效的点,当我们找到出口时,栈中保存的就是我们从起点到终点的路径。 实现方法 计算机要走出迷宫,我们需要用到递归性质 迷宫图 0代表墙壁 1代表可以通过 什么样的递归性质? 如果迷宫没有环: 1.从起点开始向四周走 2.周围...原创 2018-08-13 23:51:05 · 607 阅读 · 0 评论 -
判断一个二叉树是否为完全二叉树
前言 首先得知道什么是完全二叉树 一个N层的二叉树,它的前N-1层全是满的,并且它的最后一层的结点从左到右连续则它就是完全二叉树 图例 这是完全二叉树 这也是完全二叉树 这也是完全二叉树 这不是完全二叉树,因为最后一层的结点不连续 题目分析 根据二叉树的性质,如果学过层序遍历的话,我们很容易可以想到,利用队列先进先出的特点,对二叉树一层一层...原创 2018-08-21 16:27:48 · 444 阅读 · 0 评论 -
求二叉树的镜像(非递归&递归)
前言 什么是二叉树镜像 其实就是左右子树对调一下就是二叉树的镜像了 比如下面两图就是互为镜像的二叉树 递归方法 方法分析 采用分置的思想,大事化小事,把交换左右子树地址的事交给每一个栈帧完成。 完整代码 //二叉树的镜像 递归方法 void BTreeMirrorR(BTNode* root) { BTNode* tmp; if (root ==...原创 2018-08-21 17:08:43 · 367 阅读 · 0 评论 -
堆是什么&堆排序
堆是一个二叉树 大堆的定义 小堆的定义 堆的初始化 思路: 代码 堆排序效率: 关于堆的接口 堆插入 思路: 代码: 堆的Pop 思路: 代码: 堆排序 思路 代码 堆是一个二叉树 堆是一个静态的完全二叉树 int array[]={53,17,78,9,45,65,87,23,31}; 物理上是一个数组逻辑上是一个二叉...原创 2018-08-22 20:54:59 · 424 阅读 · 0 评论 -
二叉搜索树的基本操作(插入,删除)
前言 基本操作 插入 删除 前言 二叉搜索树是什么 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 基本操作 插入 ...原创 2018-08-24 16:01:30 · 315 阅读 · 0 评论 -
哈希的基本操作
前言 哈希 哈希冲突 闭散列 开散列 头文件定义 代码各个功能解析 初始化 插入 查找 删除 完整代码 前言 理想的搜索方式:可以不经过任何比较,一次直接从表中得到要搜索的元素,构造一种结构,通过某种函数使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么查找时就能通过函数一下找到该元素 哈希 1.本质上是一个数组,通过哈希函数使元素关键码和元素存储位置有...原创 2018-08-30 13:27:54 · 944 阅读 · 0 评论