自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构-循环队列

循环队列中指针和队列元素之间的关系不变,我们只需要利用模运算就可以很容易实现指针的循环移动。但是循环队列中存在一个问题,在循环队列中只凭头指针front等于尾指针rear无法判别队列空间是“空”还是“满”,所以在以上代码中,我们在移动rear的过程中来和front进行判断,如果二者的值是相同的,则说明该循环队列已经“满”了,不能再添加元素。* 在循环队列中加入元素。

2024-05-11 15:49:25 630 1

原创 数据结构--栈队列

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特点。入队列:进行插入操作的一端称为队尾(rear);出队列:进行删除操作的一端称为队头(front)。而在上示代码中,我们定义的头节点没有放任何元素,所以在进行删除操作时发生改变的只是front的下一个结点。//step 1. 创建一个新结点。//step 3. 新的rear。//step 2. 改变链队列。//step 3. 释放空间。//step 2. 连接。//step 4. 返回。* 创建一个空的链队列。

2024-05-11 15:40:16 1304 1

原创 数据结构-栈的应用-括号匹配

栈(Stack)是一种后进先出(LIFO)的数据结构,非常适合用来解决括号匹配问题。括号匹配通常用于检查文本中的括号(如小括号"()"、中括号"[]"、大括号"{}"以及尖括号"<>"等)是否成对出现且顺序正确。//step 1. 初始化栈并将'#'作为基础。//step 1. 空间检查。//step 1. 空间检查。

2024-05-11 15:33:10 526 1

原创 汉诺塔问题

其中,2 * T(n-1)表示两个子问题所需的时间(每个子问题都需要T(n-1)的时间),而+1表示移动最大的盘子所需的一步。因此,汉诺塔问题的时间复杂度是O(2^n),这是一个指数级的时间复杂度,说明当n很大时,移动盘子的步骤数将非常巨大。对于每一个子问题,我们都需要进行类似的操作,只是盘子的数量减少了。汉诺塔问题是一个经典的递归问题,其时间复杂度可以通过递归关系来确定。将最大的盘子(第n个)从起始柱子移动到目标柱子。将上面的n-1个盘子从起始柱子移动到辅助柱子。将n-1个盘子从辅助柱子移动到目标柱子。

2024-05-11 15:23:12 231 1

原创 多项式的加法

在C语言中实现多项式加法,我们首先需要定义一个结构来表示多项式的每一项,然后创建一个链表来存储这些项。多项式的加法实际上就是对相同指数的项进行系数相加。如果两个多项式没有相同指数的项,那么这些项就直接添加到结果多项式中。

2024-04-26 16:16:18 314 1

原创 数据结构作业:栈

空间限制:栈的大小通常是固定的,或者只能在运行时动态调整,这可能导致栈溢出的问题,尤其是在处理大量数据时。后进先出的特性:栈的主要特性就是后进先出,这种特性在很多场景中都非常有用,比如函数调用栈、撤销操作等。操作简单:栈的主要操作就是入栈和出栈,这两个操作的时间复杂度都是O(1),非常高效。数据访问限制:栈只能访问栈顶元素,不能直接访问其他位置的元素,这限制了其应用范围。内存管理方便:栈在内存中的分配和释放是自动的,这使得内存管理变得相对简单。

2024-04-24 08:30:22 383

原创 作业双链表

查找时,我们可以从head(首节点)向后查找,也可以从last(尾节点)向前查找,这样效率就提高了一倍。每次插入或删除节点时,都要处理四个引用,而不是两个,实现起来可能会稍微复杂一些。双向链表可以很方便地访问前驱结点和后继结点哦,时间复杂度都是O(1)。相对于单向链表,双向链表所占用的内存空间会更大一些。

2024-04-24 08:14:33 831

原创 第二次数据结构作业

单链表是一种方便数据增删和能动态分配内存空间的一种链式数据结构,其底层代码逻辑是开辟一个结点,其数据域存储数据,指针域存储指向下一个结点的地址。其缺点是访问结点不方便,空间开销大且不能逆向遍历。

2024-04-09 22:04:29 1526

原创 数据结构第一次作业

插入元素时,通过if语句来检查顺序表是否已满及插入位置是否合法。通过循环将插入位置及以后的元素向后移一位,再将目标元素插入到指定位置,更新列表的实际长度。实现一个顺序表的基本操作包括:1.初始化2.输出列表内容3.输出内存地址以及插入元素。心得体会:这段带码让我熟悉了顺序列表的实现原理和插入、删除的操作方法。顺序表的缺点插入和删除元素时需要移动大量元素,时间利用率不高。4.在下标为paraposition的元素,并返回其值。6.通过元素返回元素下标,元素不存在返回-1。2.输出结构体中各种元素的地址、

2024-04-06 22:02:03 1707 1

空空如也

空空如也

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

TA关注的人

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