数据结构
LandscapeMi
这个作者很懒,什么都没留下…
展开
-
数据结构_6:树:C++
数据结构tempalte<class T>class BinaryTreeNode{ friend void Visit(BinaryTreeNode<T>*); frined void InOrder(BinaryTreeNode<T> *); friend void PreOrder(BinaryTreeNode<T> *); friend void Lev原创 2016-01-15 16:46:33 · 404 阅读 · 0 评论 -
数据结构_8:查找:C++
set红黑树*原创 2016-01-21 14:40:59 · 219 阅读 · 0 评论 -
数据结构_8:查找:Hash:C语言
散列函数的构造方法直接定址法出留余数法数字分析平方取中折叠法处理冲突的方法开放定址拉链法关键因素散列函数处理冲突装填因子#define HASHTABLE 12 //定义散列表的长度#define NULLKEY -32768typedef struct{ int *elem; //数据元素存储地址,动态分配数组 int count; //当前数据元原创 2016-01-21 15:48:46 · 288 阅读 · 0 评论 -
数据结构_8:排序:C语言
冒泡排序简单排序直接插入排序希尔排序并归排序快速排序堆排序原创 2016-01-21 16:05:08 · 340 阅读 · 0 评论 -
数据结构_3:栈:C语言
顺序栈代码来自:大话数据结构数据结构#define MAXSIZE 20 /* 存储空间初始分配量 */typedef int Status; typedef int SElemType; /* SElemType类型根据实际情况而定,这里假设为int *//* 顺序栈结构 */typedef struct{ SElemType data[MAXS原创 2016-01-10 14:53:43 · 332 阅读 · 0 评论 -
数据结构_3:栈:C++
自定义的stack数据结构template<class T>class Stack {// LIFO objects public: Stack(int MaxStackSize = 10); ~Stack() {delete [] stack;} bool IsEmpty() const {return top == -1;} bool原创 2016-01-10 23:21:14 · 232 阅读 · 0 评论 -
数据结构_3:栈:STL
STL使用deque双向开口的数据结构修改某物接口,形成另外风貌=配接器(adapter)templatee<class T, class Sequence =deque<T> >class stack{ friend bool operator==_STL_NULL_TMPL_ARGS(const stack&,const stack&); friend bool oper原创 2016-01-10 23:25:27 · 223 阅读 · 0 评论 -
数据结构_4:队列:C语言
顺序队列=====假溢出循环队列初始化—– Q.front=Q.rear=0队首指针进1—Q.front=(Q.front+1)%MaxSize队尾指针进1—Q.rear=(Q.rear+1)%MaxSize队列长度——(Q.rear+MaxSize-Q.front)%MaxSize出队入队:指针都顺时针进1判断队列是否是空牺牲一个单元来区分对空和对满:入队时少用一个单元==对头指针原创 2016-01-12 21:41:46 · 318 阅读 · 0 评论 -
数据结构_4:队列:C++
数据结构template<class T>class Queue {// FIFO objects public: Queue(int MaxQueueSize = 10); ~Queue() {delete [] queue;} bool IsEmpty() const {return front == rear;} bool IsFul原创 2016-01-13 22:45:12 · 222 阅读 · 0 评论 -
数据结构_4:队列: STL
使用deque来封装queuetemplatee<class T, class Sequence =deque<T> >class queue{ friend bool operator==_STL_NULL_TMPL_ARGS(const queue&,const queue&); friend bool operator< _STL_NULL_TMPL_ARGS(const原创 2016-01-13 22:51:00 · 261 阅读 · 0 评论 -
数据结构_5:字符串:C语言
#define MAXSIZE 40 /* 存储空间初始分配量 */typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */typedef int ElemType; /* ElemType类型根据实际情况而定,这里假设为int */typedef char String[MAXSIZE+1]; /* 0号单元存放串的长度 */函原创 2016-01-14 15:51:37 · 530 阅读 · 0 评论 -
数据结构_6:树:C语言_基本概念
树的基本概念根结点结点的度叶结点树的度=最大结点最大的度树的深度=最大层数结点的深度=(自根结点)自上而下的累加结点的高度=(自叶节点)自下而上的累加二叉树五种形态空二叉树;只有一个根结点;根结点只有左子树;根结点只有右子树;根结点即有左子树,又有右子树满二叉树所有分支结点都有左子树和右子树所有叶子结点都在同一层上完全二叉树叶子结点只可以在最下两层同样结点的二叉树,完全二原创 2016-01-14 20:30:19 · 1207 阅读 · 0 评论 -
数据结构_6:树:C语言_顺序存储
二叉树的顺序存储满二叉树和完全二叉树#define MAXSIZE 100 /* 存储空间初始分配量 */#define MAX_TREE_SIZE 100 /* 二叉树的最大结点数 */typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */typedef int TElemType; /* 树结点的数据类型,目前暂定为整型原创 2016-01-14 21:20:42 · 1013 阅读 · 0 评论 -
数据结构_6:树:C语言_链式存储
二叉树的数据结构typedef struct BiTNode{ TElemType data; //结点数据 struct BiTNode *lchild,*rchild; //左右孩子指针}BiTNode, *BiTree;创建空的二叉树Status InitBiTree(BiTree *T){ *T=NULL; return OK;}创建二叉树原创 2016-01-15 00:43:24 · 370 阅读 · 0 评论 -
数据结构_8:查找:Hash:C++
hashtable原创 2016-01-21 15:50:48 · 376 阅读 · 0 评论 -
数据结构_8:查找:平衡二叉树
二叉排序树,其中每个节点的左右子树相差不超过1平衡因子=左子树深度-右子树深度红黑树多路查找树B树B+树原创 2016-01-21 14:35:52 · 242 阅读 · 0 评论 -
数据结构_8:查找:二叉排序树
二叉排序树数据结构typedef struct BiTNode //结点结构{ int data; //结点数据 struct BiTNode *lchild,*rchild; // 左右孩子指针}BiTNode,*BiTree;二叉排序树//f 指向双亲//若查找成功,则指针p指向数据元素结点,//否则指针p指向查找路径上访问的最后一个节点Statu原创 2016-01-21 14:32:13 · 304 阅读 · 0 评论 -
数据结构_7:图算法 :图的存储
邻接矩阵无向图typedef char VertexType; //顶点类型typedef int EdgeType; //边上的权值类型#define MAXVEX 100#define INFINITY 65536typedef struct{ VertexType vexs[MAXVEX]; //顶点表 EdgType arc[MAXVEX][MAXVE原创 2016-01-16 00:41:21 · 447 阅读 · 0 评论 -
数据结构_7:图算法 :图的遍历
DFS-深度优先遍历类似于先序遍历领接表矩阵方式typedef int Boolean; Boolean visited[MAX]; // 访问标志数组//领接矩阵的深度优先递归算法void DFS(MGraph G,int i){ int j; visited[i]=TRUE; printf("%c",G.vexs[i]); //打印顶点, for(j=原创 2016-01-16 15:07:52 · 368 阅读 · 0 评论 -
数据结构_7:图算法 :图的最小生成树
prim算法void prim(G,T) //T是初始化为空树{ T=空集合; U={w}; //添加任意顶点 while((V-U)!=空集) //若树中不包含全部顶点 设(u,v)是使得u属于U,v属于(V-U),且权值最小的边 T=T 并 {(u,v)}; //边归入树 U=U 并 {v}; // 顶点归入树}kruskal算原创 2016-01-16 18:12:51 · 329 阅读 · 0 评论 -
数据结构_7:图算法 :最短路径
带权有向图中某点到其余各顶点的最短路径,Dijkstra算法求每一对顶点间的最短路径,Floyd-Warshall算法Dijkstra基于贪心算法Foyd算法基于动态规划原创 2016-01-16 18:26:01 · 255 阅读 · 0 评论 -
数据结构_7:图算法 :c++/STL
邻接矩阵vector<int> G[MAX_V]; //MAX_V= 最大顶点数//边上有属性//struct edge {int to,const;};//vetcor<edge> G[MAX_V]int main(){ int V,E; scanf("%d,%d",&V,&E); for(int i=0;i<E;i++) { in原创 2016-01-16 19:37:34 · 695 阅读 · 0 评论 -
数据结构_1:线性表: C语言实现
代码:大话数据结构#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 20 /* 存储空间初始分配量 *原创 2015-12-25 00:32:45 · 549 阅读 · 0 评论 -
数据结构_1:线性表: C语言练习题
顺序表删除最小元素,返回被删元素的值,空出来的位置由最后一个一个元素填补。bool Del_min(SqList *L, ElemType *value){ if(L->length==0) return ERROR; value=L.data[0]; int pos=0; //假定零号最小 for(int i=1;i//循环寻找最小值 if原创 2015-12-25 01:03:58 · 1872 阅读 · 0 评论 -
数据结构_0: 复杂度分析
时间复杂度原则加法原则T(n)=T1(n)+T2(n)=O(f(x))+O(g(n))=O(max(f(n),g(n)))T(n)=T_1(n)+T_2(n)=O(f(x))+O(g(n))=O(max(f(n),g(n)))乘法原则T(n)=T1(n)∗T2(n)=O(f(n)∗g(n))=O(f(n)∗g(n))T(n)=T_1(n)*T_2(n)=O(f(n)*g(n原创 2015-12-23 00:26:15 · 381 阅读 · 0 评论 -
数据结构_1:线性表: C++
//内存异常#include <new.h>// bad initializersclass BadInitializers { public: BadInitializers() {}};// insufficient memoryclass NoMem { public: NoMem() {}};// change new to throw NoMem原创 2015-12-27 22:00:55 · 306 阅读 · 0 评论 -
数据结构_1:线性表: Vector
定义动态空间2倍扩容(1.5倍vs2008)重新配置—-移动数据—释放旧空间vevtor迭代器普通指针可以随机存储tempalte <class T,class Alloc=alloc>class vector{ public: typedef T value_type; typedef value_type* iterator; //vector的原创 2015-12-30 17:27:25 · 403 阅读 · 0 评论 -
数据结构_8:查找:线性查找
顺序表的查找直接查找复杂度:O(n)int Sequential_Search(int *a,int n,int key) //n是要查找的长度,key是关键字{ int i; for(i=1;i<=n;i++) { if(a[i]==key) return i; } return 0;}直接查找的改进复杂度O(n)原创 2016-01-17 23:38:51 · 397 阅读 · 0 评论 -
数据结构_2:链表:C语言
头文件#include "stdio.h" #include "string.h"#include "ctype.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define原创 2016-01-01 15:31:31 · 370 阅读 · 0 评论 -
数据结构_2:链表:C语言练习
带头结点的单链表中,删除所有值为x的节点,释放其空间//用p从头到尾扫描单链表,pre指向*p节点的前驱。若p的节点是x则删除,并让p后移,否则,pre和p同时移动void Del_x_1(LinkList &L,ElemType x){ LNode *p=L->next,*pre=L,*q; while(p!=NULL) { if(p->data=x)原创 2016-01-02 10:42:23 · 523 阅读 · 0 评论 -
数据结构_2:链表:C++
数据定义#include <stdlib.h>#include <iostream>using namespace std;#ifndef ChainNode_#define ChainNode_template <class T> class Chain;template <class T> class ChainIterator;template <class T> class K原创 2016-01-02 11:28:18 · 276 阅读 · 0 评论 -
数据结构_2:链表:STL
List双向链表环装双向链表 提供: bidirectional−Iteartorsbidirectional -Iteartors数据结构template<class T>struct _list_node{ typedef void *void_pointer; voide_pointer prev; void_pointer next; T原创 2016-01-02 11:36:50 · 257 阅读 · 0 评论 -
数据结构_9:位算法
#原创 2016-06-05 02:16:15 · 246 阅读 · 0 评论