数据结构与算法
文章平均质量分 75
数据结构与算法的一些原理和实现
亚尔诺炽焰
这个作者很懒,什么都没留下…
展开
-
[数据结构] 基数排序算法
#include #include using namespace std;int Radix(int k, int p)//求出每个数据的第pass位数字 { int power, i; power = 1; for(i = 1; i { power = power*10; } ret原创 2015-04-10 21:13:04 · 571 阅读 · 0 评论 -
[数据结构] 堆排序算法
#include #define MAX_SIZE 100using namespace std;typedef int keytype; typedef struct records //排序类型 { keytype key; //fields other; };typedef records LIST[MAX_SIZE]; //排序数组void S原创 2015-04-09 23:55:44 · 569 阅读 · 0 评论 -
[数据结构] 归并排序算法
#include #define MAX_SIZE 100using namespace std;typedef int keytype; typedef struct records //排序类型 { keytype key; //fields other; };typedef records LIST[MAX_SIZE]; //排序数组/*设A原创 2015-04-02 21:19:56 · 546 阅读 · 0 评论 -
[数据结构] 快速排序算法
快速排序算法初步描述如下:(1)if(A[i] ~ A[j] 至少包含两个不同的关键字)(2)令v的值为分块中最左两个不同关键字的较大值(3)对A[i],……A[j]中的元素进行置换: 在i+1到j中确定一个k,使A[i],……A[k-1]的关键字都小于v, A[k],……A[j]的关键字都不小于v;(4)QuickSort(i, k-1原创 2015-04-01 19:28:16 · 521 阅读 · 0 评论 -
[数据结构] 冒泡排序,插入排序,选择排序
冒泡排序, 插入排序,选择排序#include #define MAX_SIZE 100using namespace std;typedef int keytype;typedef struct records //排序类型 { keytype key; //fields other; };typedef records LIST[MAX_SI原创 2015-04-01 19:20:43 · 418 阅读 · 0 评论 -
[数据结构] 图的邻接表拓扑排序实现
#include #include #include #define Max_V 100 // 最大顶点数 using namespace std;typedef struct node{ int vtex; //邻接点 int weight; //权值 struct node *next; //链域 } EdgeNode;原创 2015-03-09 19:59:29 · 1826 阅读 · 1 评论 -
[数据结构] Floyd算法计算图的中心点
#include using namespace std; #define MAX_V 100 //定义最大顶点个数#define INF 10000 //表示正无穷 typedef struct MGraph//图的定义{ //int matrix[MAX_V][MAX_V];//邻接矩阵,带权值可存权值如下 int weight[MAX_V][MAX_V];//原创 2014-11-11 14:46:10 · 2036 阅读 · 0 评论 -
[数据结构] 邻接矩阵实现Dijkstra算法
#include using namespace std; #define MAX_V 100 //定义最大顶点个数#define INF 1000 //表示正无穷 typedef struct VertexType{ int number;//顶点标号 //int weight;};//顶点类型typedef struct MGraph//图的定义{原创 2014-11-18 14:14:30 · 1317 阅读 · 0 评论 -
[数据结构] 图的Kruskal算法实现
#include using namespace std; #define MAX_V 100 //定义最大顶点个数#define INF 1000 //表示正无穷 typedef struct VertexType{ int number;//顶点标号};//顶点类型typedef struct MGraph//图的定义{ int matrix[MAX_V原创 2015-03-04 20:01:38 · 667 阅读 · 0 评论 -
[数据结构] 图的Prim算法实现
图的Prim算法实现最小生成树#include using namespace std; #define MAX_V 100 //定义最大顶点个数#define INF 1000 //表示正无穷 typedef struct VertexType{ int number;//顶点标号};//顶点类型typedef struct MGraph//图的定义{原创 2015-02-13 15:02:58 · 686 阅读 · 0 评论 -
[数据结构] 图的邻接矩阵广度优先搜索
无向图如上所示依次输入图的信息#include #include using namespace std; #define MAX_V 100 //定义最大顶点个数#define INF 1000 //表示正无穷 typedef struct VertexType{ int number;//顶点标号};//顶点类型typedef struct MGraph原创 2015-02-03 22:11:25 · 640 阅读 · 0 评论 -
[数据结构] 图的邻接矩阵深度优先搜索
无向图如上所示依次输入图的信息#include using namespace std; #define MAX_V 100 //定义最大顶点个数#define INF 1000 //表示正无穷 typedef struct VertexType{ int number;//顶点标号};//顶点类型typedef struct MGraph//图的定义{原创 2015-02-03 18:18:12 · 648 阅读 · 0 评论 -
[数据结构] 队列的指针实现
#include using namespace std;typedef int element_type;struct celltype{ element_type element; struct celltype *next;};struct QUEUE{ celltype *front; celltype *rear;};void MakeNull(QUEU原创 2014-11-19 18:40:51 · 946 阅读 · 0 评论 -
[数据结构] 队列的循环数组实现
当用数组表示队列时,可以把数组看成原创 2014-11-19 20:09:42 · 821 阅读 · 0 评论 -
[数据结构] 二叉树的递归与非递归遍历
输入原创 2014-11-25 15:06:08 · 596 阅读 · 0 评论 -
[数据结构] 二叉树的等价判断与复制
输入 A B C D E F G H I J以先序遍历,用“#”表示原创 2014-12-03 21:40:13 · 704 阅读 · 0 评论 -
[数据结构] 二叉树的操作实现
#include #include #define MAX 100typedef int Elementtype;struct node{ struct node *lchild; struct node *rchild; Elementtype data;};typedef node *BTREE;BTREE CreateTree();int IsEmpty(BT原创 2014-10-18 17:26:23 · 1302 阅读 · 3 评论 -
[数据结构] 栈的指针实现
#include using namespace std;typedef int element_type;struct node{ element_type val; struct node *next;} ;typedef node *STACK;void MakeNull(STACK S)//建立新栈,并使其头结点为空 { S = new node; S->n原创 2014-11-18 15:18:00 · 904 阅读 · 0 评论 -
[数据结构] 栈的数组实现
#include using namespace std; #define maxlength 100typedef int Elementtype;struct STACK{ int top; Elementtype elements[maxlength];};//以数组最大段(下标)为栈底,top依次上升 void MakeNull(STACK *S)//MakeNu原创 2014-11-18 14:10:08 · 503 阅读 · 0 评论 -
[数据结构] 双向链表的实现
#include #include typedef int Elementtype;struct celltype{ Elementtype element; struct celltype *next; struct celltype *previous;} ;typedef celltype *position;position CreateNode(positi原创 2014-10-16 21:15:51 · 703 阅读 · 0 评论 -
[数据结构] 单向链表拆分成两个循环链表
#include using namespace std;struct node { int data; struct node *next;} ;struct node *CreatNode();void DisplayNode(struct node *head);void SeparateNode(struct node *head,struct node *&p,stru原创 2014-10-16 20:57:32 · 1748 阅读 · 0 评论 -
[数据结构] 链表实现多项式
#include using namespace std;struct polynode{ double coef; int exp; struct polynode *next;};struct polynode *CreatNode();struct polynode *AddNode(struct polynode *p,struct polynode *q);voi原创 2014-10-15 16:32:07 · 903 阅读 · 0 评论 -
[数据结构] 单向链表
#include #include struct link *AppendNode(struct link *head,FILE *fp);struct link *DeleteNode(struct link *head, int nodeData);struct link *InsertNode(struct link *head, int nodeData);stru原创 2014-09-17 21:36:34 · 705 阅读 · 0 评论