自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉搜索数的实现

4,插入节点 遵循根节点的左子树都小于该节点,根节点的右子树都大于该节点,同时二叉树中不能出现相同的数字,创造出两个指针,p指针用来找到所需要插入的位置,pp指针为p指针的双亲指针,主要用来判断是需要将p指针插入进左子树还是右子树。删除结点3,这里无论是删除单支结点还是双支结点,都可以进行,如果是双支结点的话需要狸猫换太子,将所需删除结点的前驱或者后继的值覆盖在所需要删除的结点上,删除其直接前驱或者删除其直接后继。寻找直接前驱的结点,比所需要删除结点小,但是离得最近的一个值。parent:双亲指针。

2025-05-19 15:45:08 167

原创 二叉树的实现

4,二叉树的构建,用先中序来实现二叉树的构建,Find_Pos函数用来寻找先序第一个数据在中序中的下标,其中Create函数的三个参数为(先序数组,中序数组,有效值个数),逻辑为:先序的第一个数据,为根节点,在中序中找到,其左边为根节点左边的数据,右边为根节点右边的数据。5,用中后序数组,来实现二叉树的构建,其中代码与先中序大致相似,不同点是,后序的最后一个数据为根节点,三个参数的意义为中序数组,后续数组,有效值个数。3.栈不为空,则取出栈顶节点并访问,然后将其右子节点和左子节点依次入栈(存在的话)

2025-05-18 18:50:52 176

原创 数据结构排序

1,直接插入排序,这里代码进行的优化。

2025-05-18 18:21:46 108

原创 哈希函数链地址法

4.插入结点,注意运用malloc函数时,要判断是否空间是否创建成功,剩余代码与在中间插入一个结点函数相同。5,删除结点,找到删除的结点,并且找到需要删除结点的前一位,进行删除操作,与插入结点操作相同。1.链地址法有效节点结构体设计和其辅助结点结构体设计。2.寻找值的辅助结点。

2025-04-13 14:06:51 182

原创 两个栈模拟一个队列

3.删除元素,例如先插头abc,栈的功能是先删除c,但是队列的功能是先删除a,所有要先将两个栈的元素头尾调换顺序,即可实现队列功能。若空,则代表数据都在s1中,则将s1中数据挪动s2,这是s2不空,则直接从s2取值。此代码中所运用到的函数功能来自前面发布的栈的有效结构体设计。1.两个栈模拟一个队列:duilie(头删,尾插)出数据,判断s2空不空,若不空,则直接从s2取值。

2025-03-31 16:58:46 179

原创 两个队列模拟一个栈

3.删除,考虑栈的功能后进先出,例如先输出abc,应该先删除c,则先将Q2的元素转移至q1保留剩最后一个,然后将其删除。4.获取栈顶元素值,大部分代码和以上相似,不同点为,需要将最后一个元素最终转移到另一个队列当中。1.注意:这里直接运用c++自带模板,首先定义两个队列。2.插入,首先只在Q2当中加入。

2025-03-31 16:42:13 154

原创 链式队列的有效结构体设计

其辅助结点的结构体,其中front为头指针,rear为尾指针。判空,也可为plq——>front==NULL;入队分为空链表和非空链表,其中非空链表类似与尾插。查找相应的值,其中while为另一种写法。销毁,两个指针相互交换。链式队列的有效结构体。

2025-03-26 13:49:32 225

原创 链表相关的问题

5.判断一个单链表是否成环,若是找到成环点,设置快慢指针如果快慢指针相遇则存在环,快慢指针相遇的第一次位置和辅助结点同时分别置于一个慢指针,两个慢指针相遇为成环点。3.判断两链表是否存在交点,只需要判断他们的尾结点是否相同。2.删除任意一个节点,但是给的不能是尾结点的地址(4.若存在交点,找到交点的位置。1.单链表如何逆置?

2025-03-23 23:06:23 119

原创 循环队列有效结构体设计

判满,这里不能再用头指针与尾指针相遇作为判满条件(与判空重合),这里需要空出来一个格子要使得(pcq->rear+1)%MAXSIZE==pcq->front作为条件。入队,这里需要考虑到尾指针由队尾指向对头了,因为是循环队列,队尾指针并不是单纯+1,而是判断是否超出对的总长度。查找,这里需要注意当头指针与尾指针相遇时,要么是为空队列要么是为没有查询的值。出对,与入对所需要注意的点相同。判空,头指针与尾指针相遇。循环队列的结构体设计。获取对头指针元素的值。

2025-03-23 22:27:46 159

原创 链栈的有效结点的结构体设计

2.对辅助结点的结构体设计,其中count为有效结点个数,top和next作用相同,top为栈顶指针。1.首先对链栈的有效结点的结构体设计data代表数据域,next数据域。6.获取栈顶元素值 Top。注:此函数代码与单链表相似。3.对链栈进行初始化。5.删除元素(出栈)

2025-03-22 00:49:30 221

原创 对和栈列结构体设计

2.对栈的元素进行添加,Ins为扩容函数,下面会有代码,其次对栈进行判满。3.对栈的元素删除,栈的特点先进后出,只能先删除最后进的,对栈进行判空。4.对栈的元素进行查找,Top为栈顶指针,待插入的位置。1.对栈的结构体进行初始化,其中base相当于数组名。8.清空,只需要将top=0;7.获取有效结点的个数。

2025-03-22 00:32:37 214

原创 双向链表有效结点结构体设计

2.将新结点进行插入,此时需要改变的值分为3.4种情况,插入的位置前后均有有效结点,则需要改变四种地址,若插入的地方后面没有有效结点,则改变3种情况,此处有三种插入,头插,尾插,按位置插。3.将结点进行删除,此时分情况需要改变两种或一种地址域,删除结点后面存在有效结点,需要改变两种地址域,若后面不存在有效结点,则改变一种地址域,剩余情况与单链表,单循环连表相同。1.初始化先对辅助结点进行初始化,构造两个地址域,next指向下一个结点地址,prior指向上一个结点。7.查找,对结点的数据域符合的进行查找。

2025-03-15 10:02:04 176

原创 单循环链表结构体设计

改为p->next=plist;其中plist为辅助结点,其中代码不同点为按值删的代码,这次用调用search函数,并未调用Del-pos函数,两种方法均可实现。本片代码与上一篇与单链表有效结点代码相似,唯一不同点,判断尾节点的条件又p->next=NULL;

2025-03-12 00:02:06 164

原创 单链表有效结点结构体设计

3.写入插入功能,分别有头插,尾插,按位置插等三个功能,注意应该先将插入的指针域赋予为辅助结点的next,再将head->next等于新的结点,头插与尾插代码基本相似,不同点尾插需要找到最后一个结点,可以采用for循环或while循环,文中采用了while循环,按位置插入采用了for循环。进行删除功能,对头结点,以及尾结点进行删除,这里需要注意的是尾结点,需要创造一个代替结点到倒数第二位,然后再对尾结点进行删除。为了防止输入指针所指向内容为空,则需要写出判断是否为空。1.创建结构体Node。

2025-03-07 23:27:34 246

原创 线性表顺序存储结构体设计 2025/3/3

/1.对我们的 elem 用来去malloc 在堆区购买一块连续的空间。//2.若返回的位置下标为-1 返回假 若不等于-1,则此时怎么删。//1.将插入位置之后的元素,统一向后挪动,把插入位置给空出来。//1.将pos位置之后的有效值,统一向前覆盖(头先动)//1.通过调用查找函数,查找val值在顺序表中的位置。//9.销毁 (需要释放malloc购买的内存的)//按值删(只删除这个val值出现的第一次的位置)//删除当前val值出现的所有位置(1)//删除当前val值出现的所有位置(2)

2025-03-03 20:06:14 768 3

空空如也

空空如也

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

TA关注的人

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