考研数据结构
Code丶Q
永远相信美好的事情即将发生!关注,点赞,收藏,一键三连!以后会频繁更新数据结构算法。从0到1,从简单到困难,我们共同进步!
展开
-
【C语言手撕数据结构代码】【单链表】
【代码】【C语言手撕数据结构代码】【单链表】原创 2024-09-03 22:23:13 · 302 阅读 · 0 评论 -
【考研数据结构刷题】408【2010年第 42题】
设将n(n>1)个整数存放到一维数组R中。试设计一个在时间和空间两方面都尽可能高效的算法,将R中保存的序列循环左移p(0n-1 位置进行逆置,最后可得。时间复杂度位0(n),空间复杂度为1。原创 2024-09-02 17:38:01 · 284 阅读 · 0 评论 -
【考研数据结构刷题】408【2009 年第 42题】
【2009 年第 42题】已知一个带有表头结点的单链表,结点结构为(data,link),假设该链表只给出了头指针 list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0。原创 2024-09-01 19:47:57 · 247 阅读 · 0 评论 -
【考研数据结构刷题】已知长度为n的线性表A采用顺序存储结构,请写一个时间复杂度为 O(n)、空间复杂度为 O(1)的算法,该算法可删除线性表中所有值为item的数据元素。
已知长度为n的线性表A采用顺序存储结构,请写一个时间复杂度为 O(n)、空间复杂度为 O(1)的算法,该算法可删除线性表中所有值为item的数据元素。本题要求时间复杂度为n,则进行依次遍历,且空间复杂度为1,则需记录不相同的数,然后将其重新放入表中。本题针对考研数据结构,采用伪代码编写,主要理解代码逻辑。原创 2024-09-01 19:21:12 · 684 阅读 · 0 评论 -
【考研数据结构刷题】已知p指向双向循环链表中的一个结点,其结点结构为 data、prior、next 三个域,写出算法 Exchange(p),交换p所指向的结点及其前驱结点的顺序。
已知p指向双向循环链表中的一个结点,其结点结构为 data、prior、next 三个域,写出算法 Exchange(p),交换p所指向的结点及其前驱结点的顺序。此问题经常考在选择题,非常经典,只要认真思考,都可以解决,为简单题。原创 2024-09-01 19:04:33 · 492 阅读 · 0 评论 -
【考研数据结构算法刷题】设计一个算法,删除递增有序链表中值大于mink且小于maxk(mink 和 maxk 是给定的两个参数,其值可以和表中的元素相同,也可以不同)的所有元素。
设计一个算法,删除递增有序链表中值大于mink且小于maxk(mink 和 maxk 是给定的两个参数,其值可以和表中的元素相同,也可以不同)的所有元素。本代码针对考研数据结构,采用伪代码实现,主要关注代码逻辑。本题目注意临界条件和删除中间元素,就可轻易解决。原创 2024-09-01 18:48:25 · 467 阅读 · 0 评论 -
【考研数据结构算法刷题】设计一个算法,将链表中所有结点的链接方向“原地”逆转,即要求仅利用原表的存储空间,换句话说,要求算法的空间复杂度为 O(1)。
设计一个算法,将链表中所有结点的链接方向“原地”逆转,即要求仅利用原表的存储空间,换句话说,要求算法的空间复杂度为 O(1)。本题实现逆转相对简单,只需要依次读入,再经过头插法即可实现。本代码针对考研数据结构,采用伪代码实现,主要关注代码逻辑。原创 2024-08-15 21:22:19 · 316 阅读 · 0 评论 -
【考研数据结构算法刷题】设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的结点,返回该结点的数据域。
设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的结点,返回该结点的数据域。本代码针对考研数据结构,采用伪代码,主要在于理解代码逻辑。本题比较简单,创建记录最大值的指针即可。原创 2024-08-15 21:07:27 · 594 阅读 · 0 评论 -
【考研数据结构算法刷题】设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B和C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A中的元素为非零整数,要求 B
设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B和C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A中的元素为非零整数,要求 B、表利用A表的结点)。该问题比较简单,注意采用的是头插法还是尾插法实现,两者有较大差异。本代码针对考研数据结构,采用伪代码,主要理解代码逻辑,原创 2024-08-15 20:56:49 · 243 阅读 · 0 评论 -
【考研数据结构算法刷题】已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出两个集合A和B的差集(即仅由在A中出现而不在B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的
已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出两个集合A和B的差集(即仅由在A中出现而不在B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。本代码针对考研数据结构,代码采用伪代码,主要理解代码逻辑,本题找在a中出现,但在b中不出现的,且都是升序,则找依次找b>a的元素插入。原创 2024-08-15 20:39:45 · 556 阅读 · 1 评论 -
【考研数据结构算法刷题】已知两个链表A和B分别表示两个集合,其元素递增排列。请设计一个算法,用于求出A与B的交集,并存放在A链表中。
此代码针对考研数据结构,所以采用伪代码,主要理解算法处理逻辑,本算法理解起来比较容易,找出data值相同的元素,然后连接到c上,不相同的元素删除。已知两个链表A和B分别表示两个集合,其元素递增排列。请设计一个算法,用于求出A与B的交集,并存放在A链表中。原创 2024-08-15 20:11:16 · 753 阅读 · 0 评论 -
【考研数据结构算法刷题】将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间。表中允许有重复的数据。
本代码针对考研数据结构,采用伪代码,主要理解代码思路,由于原链表是有重复数的升序序列,要求改降序,且不能占用其他存储空间,所以只能采用头插法进行。将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间。表中允许有重复的数据。原创 2024-08-15 19:50:02 · 578 阅读 · 0 评论 -
【考研数据结构算法刷题】将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间。表中不允许有重复的数据。
将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间。表中不允许有重复的数据。本代码是针对考研数据结构题目设计,所以采用伪代码,主要理解算法运行逻辑,代码还是比较简单的,注意最后释放节点。原创 2024-08-15 19:24:47 · 548 阅读 · 0 评论