![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 52
ZY_20181010
这个作者很懒,什么都没留下…
展开
-
栈和队列
Stack.h:#pragma once#include <stdlib.h>#include <assert.h>#include <string.h>#define MAX_SIZE (100)typedef struct Position { int x; int y;} Position;typedef int SDat...原创 2018-08-04 21:45:39 · 202 阅读 · 0 评论 -
链表
SList.h#pragma once#include <stdlib.h>#include <assert.h>#include <stdio.h>typedef int DataType;typedef struct SListNode { DataType data; struct SListNode *pNext;} SLi...原创 2018-07-31 12:12:47 · 201 阅读 · 0 评论 -
哈希
哈希函数:是元素的存储位置与它的关键码之间能够建立一 一映射的关系,那么在查找时通过该函数可以很快找到该数据。 key Hash (key) = key % m (m:存储单元的个数) 。哈希冲突:对于两个数据元素的关键字K1和K2 (K1 != K2) ,但是有:HashFunc (ki) == HashFunc (Kj) ,函数即不同关键字通过相 ...原创 2018-07-28 12:33:46 · 289 阅读 · 0 评论 -
排序
此处排序共其中排序的方法:快速排序,堆排序,归并排序,冒泡排序,选择排序,插入排序,希尔排序下面是分别的代码: 约定按照元素的大小升序排序1.快速排序 时间复杂度: 最坏 O(N ^ 2)(如果数组是逆序的) 平均水平 O(NlogN) 空间复杂度: O(N) 递归. 最坏情况下要递归 N 层 稳定性: 不稳定排序改进方面: 基准值方面:取中间数效率最高 ...原创 2018-07-27 07:24:06 · 191 阅读 · 0 评论 -
树形结构及二叉树
基本概念结点:结点包括一个数据元素及若干指向其他子树的分支(指针(索引))。结点的度:结点所拥有子树的个数为该结点的度。叶子结点(终端结点):度为0的结点。分支结点(非终端结点):度不为0的结点。一般树中除了叶子结点外都是分支结点。祖先结点:从根结点到该结点所经分支上的所有结点。子孙结点:以某结点为根结点的子树中所有结点。双亲结点:树中某结点有孩子结点,则这个结点称为他...原创 2018-07-11 20:36:11 · 794 阅读 · 0 评论 -
堆
小堆:任意结点的关键码均小于它的左右孩子的关键码,位于堆顶的关键码最小,从根结点到每个结点的路径上的数组元素组成 的序列都是递增的。大堆:任意结点的关键码均大于它的左右孩子的关键码,位于堆顶的关键码最大,从根结点到每个结点的路径上的数组元素组成 的序列都是递减的。有上面的图可以看出:对存储在下标为0开始的数组中,因此在堆中给定下标i的结点:...原创 2018-07-19 21:29:15 · 344 阅读 · 0 评论 -
二叉搜索树及应用
二叉搜索树的特点: 1.若它的左子树不为空,则左子树上所有结点的值都小于根结点的值。 2. 若它的右子树不为空,则右子树上所有结点的值都大于根结点的值。 3.它的左右 也分别为二叉搜索树。 删除的情况分为四大类,八种情况: 备注:红色圈表示要删除的结点,蓝色和绿色表示替补结点. 情况4,5,6刚好与情况...原创 2018-07-25 15:29:40 · 502 阅读 · 0 评论 -
最受欢迎的3种水果(综合应用)
该代码的大体思路:先把所有的水果(及其受欢迎度即就是有几个人喜欢count)插入到一棵二叉搜索树中,在进行二叉树的中序 遍历,最后进行建立小堆的操作,即就可以找出最受欢迎的3种水果。主要操作:二叉搜索树的插入,中序遍历,建堆时条件(叶子结点的处理,已经满足堆的情况),向下调整的操作。具体代码如下:#include <stdio.h>#include <stdlib.h&...原创 2018-07-25 17:18:14 · 721 阅读 · 0 评论