
数据结构
oliver233
天道酬勤
展开
-
图的基本操作
#include#include#include#include#includeusing namespace std;#define Max 20int visited[Max]={0};int indegree[Max]={0};typedef struct ArcNode{ int adj; struct ArcNode *nextarc;}Arc原创 2015-11-19 16:03:02 · 411 阅读 · 0 评论 -
模式串匹配(KMP算法)
#include#includetypedef struct { char string[100]; int length;}String;int next[100];void getnext(String p){ int i,j; next[0]=-1; i=0; j=-1; while(i<p.length){ if(j==-1||p.string[i]=原创 2015-12-12 17:35:11 · 391 阅读 · 0 评论 -
二叉树排序树的基本操作
#include#includetypedef struct Node{ int data; struct Node *Lchild; struct Node *Rchild;}T_Node,*BiTree;void Insert(BiTree &T,int data){ BiTree p,parent,s; p=T; while(p)原创 2015-11-29 11:08:00 · 408 阅读 · 0 评论 -
集合的交并差(链表)(未完)
#include#include#include#includeusing namespace std;int len1=0;int len2=0;typedef struct node{ int valum; struct node *next;}Node,*Linklist;void creat_list(Linklist &head,int n){原创 2015-12-16 21:29:05 · 518 阅读 · 0 评论 -
最小生成树prim(普里姆)算法
#include#include#define Max 20int visited[20];typedef struct { char vex[Max]; int vexs[Max][Max]; int vexnum,arcnum;}MGraph;typedef struct { char adjvex; int lowcost;}closest;int L原创 2015-12-07 22:43:14 · 435 阅读 · 0 评论 -
哈夫曼树的编码和译码
#include#define maxnum 1000.0#define maxsize 100typedef struct{ char ch; float weight; int lchild,rchild,parent;}hufftree;typedef struct{ char coder[maxsize]; int start;原创 2015-11-28 21:36:57 · 1956 阅读 · 0 评论 -
字典树 hdu1251
字典树是做字符串匹配的常用数据结构,它是根据公共前缀来进行匹配,大大减少了类似线性的匹配时间根节点为空每个新建立的节点有26个指针域由每一个指针域进行向下的建立和查询模板题:统计难题Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Tot原创 2016-05-31 07:41:44 · 372 阅读 · 0 评论 -
栈的基本操作
#include#include#define length 100#define add 10typedef struct size{ int *top; int *basic; int stacksize;}Stacks;void InitStacks(Stacks &S){ S.basic=(int *)malloc(length * sizeof(int));原创 2015-09-23 21:07:22 · 492 阅读 · 0 评论 -
图的邻接矩阵建立以及遍历方法
//图的邻接矩阵构造方法,以及DFS,BFS操作;#include#include#includeusing namespace std;#define Max 20int visited[20];typedef struct { char vex[Max]; int vexs[Max][Max]; int vexnum,arcnum;}MGraph;int L原创 2015-10-27 20:47:05 · 1458 阅读 · 0 评论 -
二叉树的基本构造及遍历方法
#include#include#include#includeusing namespace std;typedef struct node{ char data; struct node *Lchild; struct node *Rchild;}Bt_Tree,*Tree;void Init_Tree(Tree &tree){ char ch; scanf原创 2015-10-17 16:38:16 · 154 阅读 · 0 评论 -
顺序栈—括号匹配
#include#include#include#define length 100#define add 10typedef struct size{ char *top; char *basic; int stacksize;}Stacks;void InitStacks(Stacks &S){ S.basic=(char *)malloc(length * siz原创 2015-09-29 21:15:44 · 585 阅读 · 0 评论 -
线性表的顺序存储结构
#include#include#define length 100#define addlength 10typedef struct{ int *eum; int legth; int size;}List;void Initlist(List &L,int n){ //初始化链表 int i; L.eum = (int *)malloc(length * s原创 2015-09-14 19:08:30 · 404 阅读 · 0 评论 -
STL库中 队列的应用
#include#include//stl中队列的应用using namespace std;int main(){ queueQ;//生成存储int型的队列 int i; for(i=1;i<=5;i++) Q.push(i);//将元素放进队列; printf("%d\n",Q.size());//输出队列的大小; printf("%d ",Q.front())原创 2015-10-19 19:01:06 · 478 阅读 · 0 评论 -
STL库中,栈的应用
#include#include//栈标准库//利用STL库进行栈的基本操作using namespace std;//使用存储空间int main(){ stackS;//生成栈S; int i; int n=5; for(i=0;i<5;i++) S.push(i);//栈的压入操作; int size; size=S.size(); printf("%d\n原创 2015-10-19 18:00:33 · 470 阅读 · 0 评论 -
线性表—链式
#include#includetypedef struct list{ int data; struct list *next;}List,*LinkList;//定义结构体指针,便于直接用指针来修改位置//避免 struct List * ptr;void TailCreat(LinkList &L,int n){ //尾插法建立链表 LinkList ptr,p原创 2015-09-20 20:42:20 · 328 阅读 · 0 评论 -
栈—实现数制转换
#include#include#define length 100#define add 10typedef struct size{ int *top; int *basic; int stacksize;}Stacks;void InitStacks(Stacks &S){ S.basic=(int *)malloc(length * sizeof(int));原创 2015-09-23 21:05:40 · 526 阅读 · 0 评论 -
线性时间的哈希排序
现有的排序方法中,最快的快排的时间复杂度是NlogN,但是,面对数据量差比较小的大量数据来说,往往这样的时间复杂度是不够的,例如学生的成绩,等大规模整数数据,所以利用哈希散列的排序方法,可以用充足的空间复杂度,来换取更快的时间复杂度,(前提是:整数,且数据之间相差不大)具体思想看代码就能看懂import java.util.Scanner;public class HashSort {原创 2016-09-08 08:23:51 · 544 阅读 · 0 评论