数据结构
sinat_27233737
这个作者很懒,什么都没留下…
展开
-
图——邻接表
typedef char VertexType;//顶点类型#define MAXVEX 20typedef struct EdgeNode { int adjvex;//邻接点域,用于存储该顶点对应下标 EdgeNode *next;}EdgeNode;typedef struct VerTexNode { VertexType data; EdgeNode原创 2016-12-15 10:54:00 · 193 阅读 · 0 评论 -
栈
栈是限定仅在表尾进行插入和删除的线性表。#ifndef FIXED_CAPACITY#include <iostream>#include <string>#define STACK_INT_SIZE 100//存储空间初始分配量#define STACKINCREMENT 10//存储空间分配增量#define TRUE 1;#define FALSE 0;typedef int原创 2017-02-01 10:57:43 · 174 阅读 · 0 评论 -
查找——AVL
平衡二叉树(AVL),是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1。 AVL树是搜索用的,树的hierarchy本身没什么特别的意义。旋转的关键是,保证平衡,并且中序遍历后的顺序不变。可以把它理解为一个黑箱,查找使用,我们并不需要知道它内部的hierarchy。 在AVL树中,最重要的是理解树的旋转。 我们将AVL树大体分成直线型和折线型,具体分为4种,其旋转要点是:当原创 2017-01-24 10:55:57 · 451 阅读 · 0 评论 -
图——AOV拓扑排序
typedef struct EdgeNode{ int adjvex; int weight; EdgeNode *next;};typedef struct VerTexNode { int in;//入度 VertexType data; EdgeNode *next;}VerTexNode,AdjList[MAXVEX];typedef原创 2017-01-08 16:33:38 · 325 阅读 · 0 评论 -
线性表的链式存储结构
线性表的链式存储结构本文是学习《大话数据结构》的个人心得基础定义单链表的整表创建单链表的整表删除单链表的读取单链表的插入删除基础定义//这里已默认定义了所需的头文件和using namespace std;typedef struct Node { int data; Node *next;}relNode;typedef relNode *LinkList;//Li原创 2016-11-20 17:00:06 · 287 阅读 · 0 评论 -
图——Prim算法
Prim算法是从点的方面考虑构建一颗MST。 其大致思想是:设图G顶点集合为U,首先任意选择图G中的一点作为起始点a,将该点加入集合V,再从集合U-V中找到另一点b使得点b到V中任意一点的权值最小,此时将b点也加入集合V;以此类推,现在的集合V={a,b},再从集合U-V中找到另一点c使得点c到V中任意一点的权值最小,此时将c点加入集合V,直至所有顶点全部被加入V,此时就构建出了一颗MST。因为有原创 2016-12-20 15:17:30 · 495 阅读 · 0 评论 -
图——Floyd算法
typedef int Pathmatirx[MAXVEX][MAXVEX];//v到w最短路径P[v][w]typedef int ShortPthTable[MAXVEX][MAXVEX];//v到w带权长度void ShortestPath_Floyd(MGraph G, Pathmatirx *P, ShortPthTable *S) { int v, w, k; for原创 2016-12-30 17:31:06 · 227 阅读 · 0 评论 -
图——Dijkstra算法
Dijkstra算法的基本过程 假设路网中每一个节点都有标号,记为vi,i是其编号。D[i]是从起点v0到某点vt的最短路径长度;P[i]表示从v0到vi的最短路径中i点的前一个点的编号。求解从起点v0到终点(或图中任意一点)vt的最短路径算法的基本过程为:假设路网中每一个节点都有标号 是从出发点s到点t的最短路径长度;表示从s到t的最短路径中t点的前一个点。求解从出发点s到点t的最短路径算法的基原创 2016-12-29 18:42:42 · 352 阅读 · 0 评论 -
图——Kruskal算法
void swap(Edge L[], int i, int j) { Edge temp = L[i]; L[i] = L[j]; L[j] = temp;}void BubbleSort(Edge L[],int num) { int i, j; for (i = 0; i < num; i++) { for (j = num - 1;原创 2016-12-22 17:53:31 · 217 阅读 · 0 评论 -
队列
#ifndef QUEUE#include <iostream>using namespace std;typedef int ElemType;typedef bool Status;typedef struct QNode { ElemType data; QNode* next;}QNode,*QueuePtr;typedef struct { QueueP原创 2017-02-01 10:58:30 · 184 阅读 · 0 评论