
数据结构与算法
meditator2
当成自己的笔记本,记录一些问题
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++实现队列的顺序存储和链式存储
目录1、队列定义(逻辑结构)2、队列的顺序存储(物理结构)3、队列的链式存储(物理结构)4、测试 1、队列定义(逻辑结构) 队列是一种只允许在表的一端进行插入,另一端进行删除操作的线性表。这是一种受限的线性表,满足先进先出的原则(FIFO),允许入队的一端称为队尾(rear),允许出队的一端称为队头(front)。 2、队列的顺序存储(物理结构) 定义两个整型变量头指针front和尾指针rear 约定front始终指向队头元素,rear指向队尾元素的下一个位置,可知队列为空的条件是front == rear原创 2021-12-16 14:26:00 · 737 阅读 · 0 评论 -
C++实现栈的顺序存储和链式存储
目录1、栈的定义(逻辑结构)2、栈的顺序存储(物理结构)3、栈的链式存储(物理结构)4、测试 1、栈的定义(逻辑结构) 栈是一种插入和删除操作都只能在表的同一端进行的线性表。这是一种受限的线性表,满足先进后出的原则(FILO),允许进行插入和删除操作的一端叫做栈顶(Top);另一端叫做栈底(Bottom)。 2、栈的顺序存储(物理结构) 设计时:栈顶放在数组的尾地址(效率高) 通过栈顶top就可以完成一系列操作。开始将top = -1 #pragma once #include<iostream>原创 2021-12-15 14:57:00 · 470 阅读 · 0 评论 -
C++实现几种常见的排序算法(下)
常见排序算法-26、堆排序7、计数排序8、基数排序 这里用的是闫神的模板,具体可以看这个链接,具体注释放在代码里了。 6、堆排序 #include<iostream> #include<algorithm> using namespace std; #include<vector> //这里以大根堆为例 //弹出元素的话,就是更新堆顶,进行push_down 操作 //插入元素的话,就是更新堆底,进行push_up 操作 //n表示完全二叉树的所有节点个数,i表原创 2021-12-15 12:51:12 · 882 阅读 · 0 评论 -
C++实现几种常见的排序算法(上)
1、快速排序,2、冒泡排序,3、选择排序,4、插入排序,5、归并排序原创 2021-12-11 09:40:24 · 417 阅读 · 1 评论 -
C++实现单链表
1、头文件 创建LinkList.h头文件,一般类的声明和成员函数的实现都是分文件编写的,但这里用的是模板编程,就放在一个文件夹下了。 #pragma once template<class T> class LinkNode { template<class T> friend class LinkList; //将链式表类声明为友元 public: LinkNode() { next = NULL; //每new一个结点时,将他置空,串进链表才设ne原创 2021-12-07 16:24:52 · 1300 阅读 · 0 评论 -
C++实现动态数组
1、头文件 创建LinerList.h文件 #pragma once #include<iostream> using namespace std; template<class T> class LinerList { public: LinerList(int ms); //构造函数,创建空列表 ~LinerList(); //析构函数,删除表 //在第k个位置插入元素x,返回插入后的线性表 LinerList<T>& insert(原创 2021-12-06 21:23:23 · 738 阅读 · 0 评论