
数据结构
假老练啊哦
男性最大的魅力是幽默
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
顺序表的基本操作
#include<iostream> using namespace std; //#define MaxSize 10; 使用define的时候后面没有 ; //#define ElemType ElemType ; //数据类型修改别名的时候用typedef 并且是定义数组类型成新的别名 ElemType ->newType #define MaxSize 1...原创 2018-09-23 11:29:07 · 1420 阅读 · 0 评论 -
计数排序
计数排序是一种线性排序算法,不需要进行比较,时间复杂度为O(n)。 它利用了一个数组,因为数组下标的增长是线性的,所以它就把自己的元素转换成新开辟数组的下标。可是下标都是非负数啊?数组当中的值有正有负啊。做一个简单的转化就行了:找到数组中最小元素,用元素值减去,这样一来,所有元素对应的下标就求出来了。(实际上感觉像是个映射函数?)下图中保存的是待排序数组:[-1,-5,-6,-2,1,2,8,2...原创 2019-05-30 21:38:51 · 9259 阅读 · 3 评论 -
把字符串中的单词首字母变成大写
总结:用有穷状态自动机写了个程序,算是对它的复习吧!~其实也是想试试。学到东西还是挺多的,flag标志来控制是否的变成大写,以及对非字符的处理状态" NOUP ",对字符的处理“UP”又分两类“大写”和“小写”。 #include<iostream> #include<string> #include<cctype> using namespace std;...原创 2018-11-25 14:16:17 · 1347 阅读 · 0 评论 -
队列
队列的定义:队列是只允许在一段进行插入操作,在另一端进行删除操作的线性表。 队列是一种先进先出(first in first out)的线性表,简称FIFO。允许插入的一段称为队尾,允许删除的一段称为队头。 队列顺序存储: 队头不需要一定在下标为0的位置。 假溢出:数组尾元素已经占用,在向后添加,就会产生数组越界的错误。 解决假溢出的方法:后面填满了就从头开始,头尾相连的循环。 ...原创 2018-10-22 08:48:59 · 173 阅读 · 0 评论 -
栈的顺序存储结构和链式存储结构
1.栈的定义: 在表尾进行插入和删除操作的线性表(仍然满足线性表的操作,只是在push和pop有些区别) 栈顶(top)允许插入和删除,另一端称栈底(bottom),不含任何数据元素的栈叫空栈。 栈:后进先出(last in first out)的线性表,简称LIFO结构。 栈的插入称为进栈,也称压栈,入栈。 栈的删除称为出栈,也称弹栈。 2.栈的抽象数据结构 因为栈本身就是一个...原创 2018-10-10 08:15:09 · 5307 阅读 · 0 评论 -
单链表
1.初始化 指针定义了之后需要初始化 否则成为野指针,"0xcdcdcdcd.."代表指针没有初始化 2.什么时候使用一级指针/二级指针 ->1.不对头结点修改 (使用一级指针) 如链表的增删改查,带头结点的对链表创建(头插法尾插法) ->2.对头结点修改 (使用二级指针) 如链表的初始化,整表的删除。不带头结点的对链表创建。 3.头插法和尾插法创建链表 (1...原创 2018-09-27 21:10:42 · 271 阅读 · 0 评论 -
c++二级指针
#include<iostream> using namespace std; int a = 3; int M = 5; /*使用一级指针 不能修改 指针的指向 void changePointer(int* p) { p = &M ; }*/ void changePointer(int** p) { cout<<"p的地址是:"<<...原创 2018-09-25 20:31:14 · 782 阅读 · 0 评论 -
排序算法稳定性的问题
稳定性指的是原本排在前面的元素,排序后仍然保持在前面,如下,第一个5和第二个5如果是稳定排序的话,两者之间的相对位置仍然保持不变。 待排序的数组:3,1,9,5,5,8,4。把第一个5记作A,第二个5记作B。 如果是稳定排序,那么排序后结果为:1,3,4,A,B,8,9 如果是不稳定排序,那么排序后结果为:1,3,4,B,A,8,9 这点看起来好像没啥不一样的,因为反正两个元素值是相同的,...原创 2019-09-05 22:10:43 · 407 阅读 · 0 评论