自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 数据结构(5)--队列

队列的顺序实现是指分配一块连续的存储单元存放队列中的元素,并附设两个指针:队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置(当然也可以指向队尾,根据自己的情况来即可)。我们在前面指出了顺序队列的缺点,那我们讲顺序队列臆造成一个环状的空间,把存储队列元素的表从逻辑上视为一个环。为达到循环的效果,我们使用“除法取余运算%”来实现。为了区分队空与队满的情况,有三种处理方式:(1)牺牲一个队列单元,则队满的条件是:(Q.rear+1)%Maxsize==Q.front;

2023-09-20 10:32:26 196 1

原创 数据结构(4)--栈

C++的栈是一种数据结构,是只允许在一端进行插入删除操作的线性表,它是一个后进先出push和pop。push操作将数据压入栈顶,而pop操作将栈顶数据弹出。在C++中,栈通常用于实现函数调用堆栈和表达式求值等场景。当一个函数被调用时,它的返回地址和其他必要数据被压入栈中,当函数返回时,这些数据被弹出。栈有两种基本存储方式:(1)顺序存储:利用一段连续的内存空间进行存储。(2)链式存储:利用非连续的内存空间存储,元素之间使用指针进行链接。(通常单链表实现,栈顶是表头,栈底的表尾)

2023-09-08 16:09:30 80 1

原创 数据结构(1)---顺序表

线性表的顺序存储就是顺序表,它是用一组“地址连续的存储单元”依次存储数据元素,从而使得逻辑上相邻的两个元素在物理位置上也是相邻的。在进行分配数组的时候,可以进行静态分配。但由于数组的大小和空间事先已经固定,所以一旦空间占满,再加入新的数据就会产生溢出,进而导致程序崩溃。//静态分配int length;当然也可以进行动态分配,区别在于,一旦原来分配的数据空间占满,系统就另外开辟一块更大的存储空间,从而替换到原来的存储空间,再用delete(或者free)释放原来的区域,从而达到扩充存储空间的目的。

2023-09-07 10:44:40 92 1

原创 数据结构(3)--双链表,循环链表,静态链表

单链表结点中只有一个指向其后继的指针,使得单链表只能从头结点依次顺序地向后遍历。要访问某个结点的前驱结点(插入,删除操作时),只能遍历,访问后继结点的时间复杂度为O(1),访问前驱结点的时间复杂度为O(n)。但如果使用双链表,双链表结点中有两个指针prev和next,分别指向其前驱结点和后继结点。就能非常轻松地同时找到某个结点的前驱结点和后继节点。插入和删除的复杂度仅为O(1)。

2023-09-07 10:43:23 336 1

原创 数据结构(2)—单链表(带头结点和不带头结点)

单链表是通过一组任意的存储单元来存储线性表中的数据元素。每个结点都有data数据域(用来存放数据元素)和next指针域(用来存放后继节点的地址)。对于顺序表,单链表可以解决顺序表需要一整个大量的连续的存储单元的缺点,单链表的元素可以离散地分布在存储空间中,即非随机存取的存储结构,不能直接找到表中某个特定的结点,当查找某个特定的结点时,需要从表头开始一个一个遍历。因为单链表附加了指针域,缺点就是存储空间增大。单链表有带头结点和不带头结点两种类型。引入头结点。

2023-08-31 19:29:34 3636 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除