- 博客(6)
- 收藏
- 关注
原创 数据结构(C++版)—— 顺序队列Ⅴ
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。
2023-09-03 20:32:35 402
原创 数据结构(C++版)—— 顺序栈Ⅳ
顺序栈实际上和顺序表是十分类似的,都是对数组知识点的运用,但是与顺序表不同的是,我们限制了数据的入栈与出栈只能从一侧来进行。这里我们在结构体里声明了top来记录栈顶元素,初始化为-1,因为数组序号是从0开始记录,0号数组对应第一个入栈元素。这里就是考察对数组的熟练使用,需要注意的是入栈元素不要超过我们定义的最大入栈元素。
2023-08-31 16:47:12 355
原创 数据结构(C++版)—— 双链表 Ⅲ
一、双链表定义双链表的定义和单链表一样,只是在其基础上添加了一个指向前驱节点的指针,对比单链表,可以正向检索,又可以逆向检索,存储密度更低,较之单链表更为高级。二、双链表的操作双链表的操作和单链表的操作基本无异,只是在原有基础上要多考虑一条指向前驱节点的指针的指向,这里最好最好自己多多画图理解,我们不再啰嗦直接上代码。2.1、双链表的初始化操作typedef struct DNode{ int data; struct DNode* prior, * next;}DNode,*
2023-08-30 21:35:57 94 1
原创 数据结构(C++版)—— 单链表Ⅱ
这里我们重点介绍while循环里的语句块,首先我们创建的s和r指针都是指向头结点的,下图中的第一个形态,接着由s指向一块新开辟的空间,并且使它的数据域为我们输入的x,对应下图的第二个形态,接着使r所指的头节点的指针域指针指向s所指向的新开辟的空间,最后使r等于s,即使r也指向s所指向的新开辟的空间,接着继续cin,直到我们的数据输入-1(这里可以改成任何你想要的数据)退出传值。这里的while循环的作用和插入操作的作用一样,这里不再赘述。是使单链表的指针域为空的操作。关于上述代码的理解主要有两个方面。
2023-08-29 18:45:37 144 1
原创 C++中的const与constexpr,auto与decltype
在我们编程时常常需要把表达式的值赋值给变量,这就要求在声明变量的时候可以清楚的知道表达式的类型,然而做到这一点不容易,有时甚至根本做不到,由此C++11引出了auto类型说明符,使用它可以让编译器代替我们去分析表达式所属类型,auto让编译器通过初始值来判断变量的类型,显然,auto的定义的变量必须有初始值。有时我们遇到这样的情况:希望从表达式的类型推断出要定义的变量的类型,但是不想用该表达式的值初始化变量,由此C++11中引入了decltype类型指示符,它的作用是选择并返回操作数的数据类型。
2023-08-23 23:33:20 573 1
原创 数据结构(C++版)—— 顺序表Ⅰ
一、顺序表的定义顺序表——用顺序存储的方式实现线性表顺序存储把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现,是具有相同数据类型的n(n>0)个数据元素的有限序列。二,要实现的代码功能主要操作其他常用操作三,具体代码实现。
2023-07-26 11:31:19 1793 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人