数据结构
文章平均质量分 68
爱吃肉的糖醋排骨
这个作者很懒,什么都没留下…
展开
-
哈夫曼树
1. 哈夫曼树的基本概念 哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。 所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的带权路径长度记为: WPL=(W1*L1+W2*L2+W3*L3+...+ Wn*Ln) N个权值Wi(i=1,2,...n)构成一棵有N个原创 2016-07-25 21:46:06 · 603 阅读 · 0 评论 -
左老师-子数组最大和
子数组最大和时间复杂度O(n)原创 2016-09-06 12:47:22 · 295 阅读 · 0 评论 -
二叉树的建立与遍历
#include #include #include using namespace std; //二叉树结点 typedef struct BiTNode{ //数据 char data; //左右孩子指针 struct BiTNode *lchild,*rchild; }BiTNode,*BiT原创 2016-07-25 21:15:32 · 279 阅读 · 0 评论 -
队列的链表实现
#include #include#include using namespace std;#define maxsize 100//顺序栈的实现typedef struct ListNode{ int data; ListNode* next;}ListNode;typedef struct ListQueue{ ListNode* front; ListN原创 2016-09-13 15:29:20 · 327 阅读 · 0 评论 -
顺序栈和链栈的实现
之前又一次现场笔试,当时直接懵逼了,发现自己之前看书,完全没注意这些,整个过程尴尬,后面决定好好把这些数据结构的基础实现完成一遍栈的实现有三种,顺序存储链式存储还有共享栈一、链式存储#include #include#include using namespace std;//链栈的实现typedef struct ListNode{ int val; ListNode原创 2016-09-13 11:17:51 · 488 阅读 · 0 评论 -
数据结构之排序
常用的几种排序方法:冒泡、插入、选择、快排、归并排序1、冒泡以升序为例,也是有两种思路,(1)num[0]依次与后面比较将最小的放到第一位(2)将最大的放到最后一位。我比较习惯用第一种(1)#include #include using namespace std; int main() { int a; int num[100];原创 2016-07-24 11:11:31 · 380 阅读 · 0 评论 -
Hash表
Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组、链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字进行比较来进行查找。这个源于Hash表设计的特殊性,它采用了函数映射的思想将记录的存储位置与记录的关键字关联起来,从而能够很快速地进行查找。 Hash表的设计思想 对于一般的线性表,比原创 2016-08-02 15:00:11 · 411 阅读 · 0 评论 -
实现大数的加减法
#include using namespace std;void add(char s1[],char s2[]){int len1=strlen(s1);int len2=strlen(s2);int maxlen;int num1=0,count=0;char sum[210];if(len1>=len2)maxlen=len1;els原创 2016-08-04 09:17:46 · 381 阅读 · 0 评论 -
动态规划背包问题
首先介绍一下动态规划...设计一个动态规划算法,通常可按照以下几个步骤进行:(1) 找出最优解的性质,并刻画其结构特征。(2) 递归地定义最优解的值(3) 以自底而上的方式计算出最优值(4) 根据计算最优值时得到的信息,构造一个最优解。对于一个给定的问题,若具有以下两个性质,则可以考虑用动态规划法来求解。(1) 最优子结构。如果一个问题的最优原创 2016-07-27 11:44:55 · 400 阅读 · 0 评论 -
左老师-最长递增子序列
最长递增子序列O(N2)#include#include#include using namespace std;//最长递增子序列长度int maxlen(int *arr,int len){ int b[100]={0};//当必须以arr[i]为结尾的前提下,最长递增长度为h[i] int max=1; for(int i=0;i<8;i++) { b[i]=1原创 2016-09-06 14:52:20 · 363 阅读 · 0 评论