数据结构
sumup
活到老,学到老。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单链表的逆转
/* 只需要完成逆置链表函数 struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ class Solution { public: ListNode* ReverseList(ListNode* pHead) {原创 2017-09-02 11:32:04 · 357 阅读 · 0 评论 -
二叉树性质
二叉树有以下几个性质:TODO(上标和下标) 性质1:二叉树第i层上的结点数目最多为 2{i-1} (i≥1)。 性质2:深度为k的二叉树至多有2{k}-1个结点(k≥1)。 性质3:包含n个结点的二叉树的高度至少为log2 (n+1)。 性质4:在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1。 2.1 性质1:二叉树第i层上的结点数目最转载 2017-09-04 12:13:46 · 546 阅读 · 0 评论 -
排序总结
一、排序的分类 插入排序 1.直接插入排序 #include using namespace std; void insertSort(int a[],int n) { int i,j; for(int i=2;i<=n;++i)//依次将a[2]~a[n]插入到前面已排序的序列 { if(a[i]<a[i-1])//a[i]小于前驱的话,将a[i]插入有序表原创 2017-09-11 16:59:23 · 387 阅读 · 0 评论 -
二叉树的遍历
递归与非递归#include #include using namespace std; typedef struct BiNode { int num; struct BiNode *lchild,*rchild; }BiNode,*BiTree; int createTree(BiTree &T)//先序构造二叉树 { int data; cin>>data; if原创 2017-09-18 14:43:40 · 392 阅读 · 0 评论 -
查找总结
1、线性查找法 2、二分查找 3、分块查找 4、散列表 常用的哈希函数 除留余数法 常用的解决冲突的方法 线性探测法、拉链法 装填因子 查找成功时平均查找长度 查找失败时平均查找长度原创 2017-09-12 09:33:16 · 253 阅读 · 0 评论 -
树->二叉树
树变二叉树过程: 1.给兄弟加线 2.去掉长子外的线 3.层次调整 调整完结构唯一 转自:https://www.nowcoder.com/profile/7547596/test/11230047/85934转载 2017-09-20 08:44:23 · 356 阅读 · 0 评论 -
图的基本应用
最小生成树 Prim算法 适用于求解边稠密的图的最小生成树。 Kruskal算法 适合于边系数而顶点较多的图。 最短路径 Dijkstra算法 Floyd算法 拓扑排序 有向无环图:一个有向图中不存在环,则称为有向无环图,简称DAG图。 AOV网:如果DAG图表示一个工程,其顶点表示活动,用有向边表示活动Vi必须先于活动Vj进行的这样一种关系,则将这种有向图称为顶点表示活动的网原创 2017-10-08 10:36:51 · 519 阅读 · 0 评论 -
设计一个栈实现最大值函数
/** 设计一个栈结构,使得取出栈中最大值时间复杂度为O(1) 就是开辟多一个存储最大值索引的栈,该栈和存储数据的栈保持同步,即栈顶指针同时作用这两个栈。 */ #include using namespace std; class myStack { public: myStack() { MAX = 10;//栈的容量 top = -1;//oriSTack和ma原创 2017-10-08 17:36:42 · 1157 阅读 · 0 评论 -
Hash表(哈希表、散列表)
一、基本概念 散列函数:一个把查找表中的关键字映射成该关键字对应的地址的函数,记为Hash(key)=Addr。(地址可以是数组下标,索引,或内存地址等) 冲突:散列函数可能会把两个和两个以上的不同关键字映射到同一地址。(冲突不可避免,所以要设计好的处理冲突的方法。) 同义词:发生碰撞的不同关键字为同义词。 散列表:根据关键字直接进行访问的数据结构。散列表是建立在关键字和存储地址之间的一种原创 2017-10-06 10:14:19 · 786 阅读 · 0 评论
分享