数据结构
FlyuZ
这个作者很懒,什么都没留下…
展开
-
数据结构 -- 用C实现链式栈
#include <stdio.h>#include <stdlib.h>struct node{ int data; struct node *next;}Stack;int gettop(struct node *top){ return top -> data;}struct node * push(struct node *top,int x ){原创 2017-03-12 11:27:11 · 356 阅读 · 0 评论 -
数据结构--用C实现链式队列
#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct node *next;} Node;typedef struct queue{ struct node *top; struct node *tail;} Queue;int gettop(struct qu原创 2017-03-12 15:27:25 · 354 阅读 · 0 评论 -
hdu1166-树状数组模板题
树状数组真的是巧妙,发明这个的人一定是个天才。看了别人的博客半天大概知道是什么意思了,不过没有理解透彻,以后再说吧,反正核心代码也不长先背过再说。 推荐这篇博客我觉得树状数组讲的挺好的,http://blog.csdn.net/int64ago/article/details/7429868还有这道题要注意的,一个是数据量较大,最好不要用cin/cout,一个是输入输出时注意格式。#include原创 2017-04-26 20:42:46 · 401 阅读 · 0 评论 -
ST表模板
ST表用来求给定区间RMQ的最值st[i][j] 表示以i开头i+2^j结尾的区间的最值。 初态:st[i][0] = a[i]; 状态转移: st[i][j] = min/max (st[i][j-1], st[i+(1<<(j-1))][j-1]); 模板const int maxn = 1005;int stmin[maxn][20],stmax[maxn][20];void Ini原创 2017-08-08 18:36:23 · 3160 阅读 · 2 评论 -
链式前向星与邻接表对比
本文图片及数据对于这样一张有向图: 输入边的顺序如下: 1 2 2 3 3 4 1 3 4 1 1 5 4 5对于邻接表来说是这样的: 1 -> 2 -> 3 -> 5 2 -> 3 3 -> 4 4 -> 1 -> 5 5 ->^对于链式前向星来说是这样的:edge[0].to = 2; edge[0].next = -1; head[1] = 0;原创 2017-09-06 21:43:48 · 14641 阅读 · 4 评论 -
求有向图强联通分量--Tarjan算法
本文思想来自byvoid根据大神思路改的代码模板 改下输出的模板题:HDUoj1269 #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=10,M=50;struct Edge{ int v,next;} edge[M原创 2017-09-15 21:33:51 · 394 阅读 · 0 评论 -
数据结构--哈夫曼树建立及打印编码
题目描述 对输入的英文大写字母进行统计概率 然后构建哈夫曼树,输出是按照概率降序排序输出Huffman编码。#include <iostream>#include <queue>#include <cstring>#include <vector>#include <cstdio>#include <algorithm>using namespace std;class Node{原创 2017-11-07 14:40:31 · 2854 阅读 · 0 评论 -
数据结构——二叉树建树与遍历
从mooc上看到一张很好的图,说明了前序遍历,中序遍历,后序遍历之间的关系。(1)先序遍历 如果二叉树不为空,访问根节点,前序遍历左子树,前序遍历右子树,如上图×号。//先序遍历void PreOrderTree(BinTreeNode *root){ if(root) { cout<<root->data<<" "; PreOrderTree(原创 2017-03-22 20:08:19 · 742 阅读 · 0 评论 -
数据结构--表达式计算
问题: 输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。 样例输入 1-2+3*(4-5) 样例输出 -4思路: 中缀表达式转后缀表达式。 规则: 从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分,若是符号,则判断其与栈顶符号的优先级,是右括号或是优先级不高于栈顶符号则栈顶元素依次出栈并输出,并将当前符号进栈,一直到最终输原创 2017-01-24 15:37:32 · 5331 阅读 · 0 评论