数据结构
文章平均质量分 69
包含一些数据结构
马踏飞燕&lin_li
博客地址以迁移:https://linli1724647576.github.io/
展开
-
交互式表达式求值(支持多种类型的运算符)
交互式表达式求值(支持多种类型的运算符)一、说明输入字符串为中缀原创 2022-09-18 11:26:36 · 1089 阅读 · 4 评论 -
最少换乘次数
最少换乘次数问题描述:设某城市有n个车站,并有m条公交线路连接这些车站。设这些公交车都是单向的,这n个车站被顺序编号为0~n-1。编号程序,输入该城市的公交线路数,车站个数,以及各公交线路上的各站编号。实现要求:求得从站0出发乘公交车至站n一1的最少换车次数。思路:BFS:我们把同一条线路上的所有车站之间全部连一条边,这样就可以直接利用bfs求得最短距离,因为bfs只要到达终点就一定是最短的。单源最短路径算法:经典的Dijstra算法求最短路径#include<iostream>原创 2022-05-27 19:38:57 · 2046 阅读 · 0 评论 -
KMP算法
KMP算法源代码#include <iostream>#include<string>using namespace std;//模式匹配算法1int Index(string S,string T,int pos){ //返回子串T在主串S中第pos个字符后的位置。若不存在,则返回函数值0 int i=pos; int j=1; ...原创 2019-11-18 10:49:21 · 165 阅读 · 0 评论 -
排序算法
#include <iostream>#include<stdlib.h>#include<time.h>typedef long clock_t;using namespace std;//、基数排序//生成随机序列void random(int a[1001]){ int i,j; srand((unsigned)time(N...原创 2019-12-13 17:03:07 · 172 阅读 · 1 评论 -
二叉排序树
二叉排序树源代码#include <iostream>#include<stdio.h>using namespace std;typedef struct BTNode{ int data; struct BTNode *lChild; struct BTNode *rChild;}BiTNode,*BiTree;//插入int ...原创 2019-11-27 23:04:22 · 259 阅读 · 0 评论 -
图的邻接矩阵 (图的遍历、Prim算法、Dijkstra算法、Floyd算法)
图的邻接矩阵 (图的遍历、Prim算法、Dijkstra算法、Floyd算法)一、源代码1、邻接矩阵的数据结构#include<stdio.h>#include<stdlib.h>#include<queue>using namespace std;typedef int ArcCell; //直接存放权值typedef struct{ ...原创 2019-11-18 23:43:11 · 1200 阅读 · 1 评论 -
图的邻接表存储 (图的遍历、拓扑排序、关键路径)
图的邻接表存储 (图的遍历、拓扑排序、关键路径)一、源代码1、图的基本数据结构//邻接表存储图#include<stdio.h>#include<iostream>#include<queue>#include <stack>using namespace std;typedef struct ArcNode{ int ad...原创 2019-11-18 23:30:06 · 5662 阅读 · 3 评论 -
哈夫曼树&&哈夫曼编码
哈夫曼树&&哈夫曼编码1、源代码(详解见注释)#include <stdio.h>#include<stdlib.h>#include<string.h>typedef struct { int weight; int parent,lchild,rchild;}HTNode,*HuffmanTree; //动态分...原创 2019-11-02 16:47:06 · 381 阅读 · 3 评论 -
队列的顺序存储
队列的顺序存储源代码#include<stdbool.h>#include <stdio.h>#include<stdlib.h>#define MAXQUEUE 10typedef struct queue{ int front,rear; int Queueentry[MAXQUEUE]; int c;}Queue;...原创 2019-10-26 15:02:29 · 182 阅读 · 0 评论 -
队列的链式存储
队列的链式存储源代码#include<stdlib.h>#include <stdio.h>#include<stdbool.h>typedef struct _node{ int elem; struct _node* next;}Node;typedef struct _queue{ Node* front; ...原创 2019-10-26 15:01:27 · 154 阅读 · 0 评论 -
栈的顺序存储
栈的顺序存储源代码#include<stdlib.h>#include <stdio.h>#include<stdbool.h>#define STACKSIZE 100typedef struct stack{ int top; int * elem; int stack_size;}Stack;//初始化栈bool ...原创 2019-10-26 15:00:17 · 162 阅读 · 0 评论 -
栈的链式存储
栈的链式存储源代码#include<stdbool.h>#include <stdio.h>#include<stdlib.h>//栈底作为链表头部typedef struct _node{ int elem; struct _node* next;}Stacknode;typedef struct stack{ Stac...原创 2019-10-26 14:57:39 · 159 阅读 · 0 评论 -
孩子兄弟链表求深度
孩子兄弟链表描述:对以孩子-兄弟链表表示的树编写计算树的深度的算法1、源代码#include <stdio.h>#include<stdlib.h>typedef struct CSNode{ int data; struct CSNode *firstchild,*nextsibling;}CSNode;//层次遍历构建二叉树void C...原创 2019-10-26 14:54:55 · 4035 阅读 · 2 评论 -
稀疏矩阵乘法器
稀疏矩阵1、定义稀疏矩阵的数据结构,是个三元组#include<stdio.h>#define MAXSIZE 12500typedef struct{ int i,j; int e;}Triple;typedef struct{ Triple data[MAXSIZE+1]; int mu,nu,tu; //mu行数,nu列数,tu非零元...原创 2019-10-25 13:00:59 · 512 阅读 · 0 评论 -
线索二叉树
线索二叉树线索二叉树的线索化及遍历方法,先序遍历和中序遍历比较方便,后序遍历不建议用线索二叉树1、源代码#include <stdio.h>#include <stdlib.h>#include<stack>#include<stack>#define LINK 0 //指针#define THREAD 1 //线索using n...原创 2019-11-02 15:50:20 · 1041 阅读 · 2 评论 -
二叉树的基本操作
二叉树的基本操作1、定义二叉树的数据结构,包含数据域,左子树和右子树```cpp#include <stdio.h>#include <stdlib.h>#include<stack>using namespace std;typedef struct BTNode{ int data; struct BTNode *lChild...原创 2019-10-25 10:57:34 · 2873 阅读 · 0 评论