简单数据结构实现
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Heap
List
Map
Queue
Stack
Tree
README.md

README.md

数据结构

来源:数据结构探险系列代码

贡献者:wnma3mz

欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。

目前,只在课程基础上用C++实现了一遍,并加入了堆和平衡二叉树的实现。欢迎提交完善C++版本和其他语言版本。若有疑问,欢迎提issus。

说明

C++在Linux下编译

  1. g++ *.cpp -o outfile
  2. ./outfile

Stack/

栈的实现

名字 功能
MyStack.h 实现了栈的数据结构,并且可拓展
MyStack.cpp 可以不需要编译,因为代码已经转移到了MyStack.h中,为了实现模板
Coordinate.h 实现坐标类,m_iXm_iY
demo.cpp 检验栈的实现
demo2.cpp 引入新的Coordinate.h实现栈
demo3.cpp 实现进制转换
demo4.cpp 实现符号匹配[(){}]

Queue/

队列的实现(环形队列)

名字 功能
MyQueue.h 实现了队列的数据结构,编译的时候需要使用MyQueue.cpp
Customer.h 实现顾客类,m_strNamem_iAge
demo.cpp 检验队列的实现
demo2.cpp 引入Customer.h实现队列

List/

线性表的实现(顺序表单向表

名字 功能
List.h 实现顺序表
List2.h 实现单链表
Node.h 实现List2.h中需要的Node类,Person类和Node类的指针
Person.h 使用Person类,有两个属性namephone
Coordinate.h 实现坐标类,同stack_demo/
demo.cpp 检验顺序表的实现
demo2.cpp 引入Coordinate.h实现顺序表
demo3.cpp 引入Node.h检验单链表的实现
demo4.cpp 引入Person.h实现单链表

Tree/

树的实现(二叉树数组和二叉树链表)

名字 功能
Tree.h 实现二叉树数组
Tree2.h 实现二叉树链表
Node.h 实现二叉树链表所需要的结点。index索引、data数值、Node *pLChild, *pRChild, *pParent左右孩子父结点
demo.cpp 检验二叉树数组的实现
demo2.cpp 检验二叉树链表的实现
BSTree.h 实现二叉查找树
demo3.cpp 检验二叉查找树的实现
AVLTree.h 平衡二叉树

Map/

图的实现

名字 功能
CMap.h 实现图
Edge.h 实现图所需要的边,nodeIndexAnodeIndexBweightValue,节点A、B的索引及对应边的权值
Node.h 实现图所需要的点,m_cData节点的值,m_bIsVisted改节点是否被访问过
demo.cpp 检验图的实现,深度优先遍历和广度优先遍历
demo2.cpp 检验最小生成树算法的实现,普利姆最小生成树和克鲁斯卡尔最小生成树
demo3.cpp 检验最短路径算法的实现,迪杰斯特拉最短路径和弗洛伊德最短路径

Heap/

堆的实现

名字 功能
Heap.cpp 最小堆排序