数据结构C++
哈儿1号
本科大二软工学生,请各位大佬多多指教。
展开
-
Dijkstra算法
#include <iostream>using namespace std;#include <stack>//重要#include <cstring>const int MaxVnum = 100;//这个是城市的个数,可修改const int INF = 1e7;//无穷大1000000int dist[MaxVnum], p[MaxVnum];//最短距离和前驱数组bool flag[MaxVnum];//这个是集合的标志,如果flag[i]=tr原创 2021-12-08 09:21:16 · 124 阅读 · 0 评论 -
C++数据结构 数组加链表
```cpp#include<iostream>using namespace std;//对于线性表有必要执行的操作://创建,撤销//确定线性表是否为空//确定线性表的长度//按索引查找一个元素//按元素查找索引。//按索引删除元素//按索引插入元素//从左到右的顺序输出线性表元素//这是个老祖宗template<class T>class linearList{public: virtual ~linearList() {}; virtu.原创 2021-09-25 16:46:21 · 276 阅读 · 0 评论 -
数据结构链表(更新中)
#include<iostream>using namespace std;//链表学习笔记(代码抄的,注释自己写的...)//链表第一部分 单链表(头结点不存数据的那种)(网课笔记)typedef struct LNode { int data;//节点的数据域 struct LNode* next;//节点的指针域 }LNode, *LinkList;//构造一个空的单链表L,相当于初始化。(网课没有单独写一个类来管理链表,而是写了这么一个一个的函数)bool原创 2021-09-28 21:26:35 · 71 阅读 · 0 评论 -
有头结点的单向链表
自己写的一个错误百出的代码。。#include <string> #include <sstream> #include <iostream> using namespace std;//对于线性表有必要执行的操作://创建,撤销//确定线性表是否为空//确定线性表的长度//按索引查找一个元素//按元素查找索引。//按索引删除元素//按索引插入元素//从左到右的顺序输出线性表元素//挑战在ppt都没看懂的情况下自己写带有头结点的单向循环链表原创 2021-09-29 22:04:20 · 134 阅读 · 0 评论 -
用数组实现的并查集算法
#include<iostream>using namespace std;//这大概是个老祖宗。class UnionFind {public: virtual int size() = 0; virtual bool isEmpty() = 0; //是否连接(??啥) virtual bool isConnected(int p, int q) = 0; //联结元素(??啥) virtual void unionElements(int p, int q) = 0;原创 2021-10-03 14:45:33 · 213 阅读 · 0 评论 -
使用链表和整型指针实现的并查集算法
//从书上抄的例子,代码不是原创 不是原创 不是原创。#include<iostream>using namespace std;//使用链表和整型指针实现的并查集算法struct equivNode{ int equivClass, //元素类标识符 size, //类的元素个数 next; //类中指向下一个元素的指针 //说实在的,这个链表节点有点让我晕。。。next居然是个整数而不是一个equivNode指针。 //这好像是一个数组模.原创 2021-10-03 16:03:12 · 265 阅读 · 0 评论 -
数据结构C++基数排序
#include<iostream>using namespace std;#define Maxsize 10000//基数排序int A[Maxsize];//求待排序序列最大元素位数int Maxbit(int A[], int n){ int maxvalue = A[0], digits = 0;//初始化最大元素为A[0],最大位数为0 for (int i = 1; i < n; i++)//找到序列中最大元素 { if (A[i] > max原创 2021-10-03 20:01:53 · 197 阅读 · 0 评论 -
数据结构C++矩阵
#include<iostream>using namespace std;//课本例子//这个矩阵符合正常的习惯,下标从1开始的(但是呢。。很不符合我的习惯。。)//而且这个矩阵是用一维数组模拟二维数组,一维数组从0开始的下标,但是模拟的那个数组从1开始。。。。template<class T>class matrix { //一个友元函数 friend ostream& operator<<(ostream&, const matr原创 2021-10-04 21:31:32 · 430 阅读 · 1 评论 -
数据结构C++栈
#include<iostream>using namespace std;#define Maxsize 100 //预先分配空间,这个数值根据实际需要预估确定//用数组来写栈typedef struct SqStack { int* base;//栈底指针 int* top;//栈顶指针}SqStack;//构造一个空栈Sbool InitStack(SqStack& S){ S.base = new int[Maxsize]; if (!S.bas原创 2021-10-09 09:22:37 · 95 阅读 · 0 评论 -
数据结构C++循环队列
#include<iostream>using namespace std;#define Maxsize 100//循环队列typedef struct SqQueue { int* base;//基地址 int front, rear;//头指针,尾指针}SqQueue;//循环队列的初始化bool InitQueue(SqQueue& Q)//注意使用引用参数,否则出了函数,其改变无效{ Q.base = new int[Maxsize];//分配空间原创 2021-10-09 10:47:19 · 125 阅读 · 0 评论 -
数据结构C++队列(数组,链表)
#include<iostream>using namespace std;//队列(课本版)//老祖宗template<class T>class queue {public: virtual ~queue(){} virtual bool empty()const = 0;//队列为空时返回true,否则返回false virtual int size()const = 0;//返回队列中元素个数 virtual T& front() = 0;原创 2021-10-09 16:39:53 · 90 阅读 · 0 评论 -
C++数据结构(栈的应用)(火车重排问题)
//非原创,不知道怎么转载 //emmm这玩意我研究了一晚上哈哈哈哈哈//这个是原网址,我只是做个笔记自己看的//https://blog.csdn.net/jkay_wong/article/details/6830541//为了重排车厢,需从前往后依次检查入轨上的所有车厢。//如果正在检查的车厢就是下一个满足要求的车厢,可以直//接把它放到出轨上。否则,则把它移动到缓冲轨上,直到//按输出顺序要求轮到它的时候才可以将他放到出轨上。缓//冲轨是按照栈的方式使用的,因为车厢的进出都是在缓原创 2021-10-09 21:09:24 · 1116 阅读 · 0 评论 -
数据结构基本排序
一.基数排序#include<iostream>using namespace std;#define Maxsize 10000//基数排序int A[Maxsize];//求待排序序列最大元素位数int Maxbit(int A[], int n){ int maxvalue = A[0], digits = 0;//初始化最大元素为A[0],最大位数为0 for (int i = 1; i < n; i++)//找到序列中最大元素 { if (A[i] &原创 2021-10-19 08:50:55 · 54 阅读 · 0 评论 -
数据结构C++(栈的应用)就近匹配
#include<iostream>using namespace std;#define MAX_SIZE 1024//先准备一下栈//这个好像是用数组写的栈class Stack{public: Stack(); ~Stack(); void push_back(void*); void* Front(); void pop_front(); int GetSize(); void Clear(); bool empty();private: void*原创 2021-10-09 23:32:26 · 102 阅读 · 0 评论