草庐IT

链表OJ题

全部标签

【Java版oj】day16完全数计算、扑克牌大小

目录 一、完全数计算(1)原题再现(2)问题分析(3)完整代码 二、扑克牌大小(1)原题再现(2)问题分析(3)完整代码 一、完全数计算(1)原题再现完全数计算__牛客网         完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。输入n,请输出n以内(含n)完全数的个数。输入描述: 输入一个数字n输出描述:输出不超过n的完全数的个数 示例1输入1000输出3(2)问题分析  

环形链表 II(力扣142)(快慢指针)

142.环形链表—力扣题目描述:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。如果pos是-1,则在该链表中没有环。注意:pos不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改链表。示例1:输入:head=[3,2,0,-4],pos=1输出:返回索引为1的链表节点解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head=[1,2],pos=0输

【牛客网面试必刷TOP101】链表篇(三)

链表一、前言二、学习刷题网站三、刷题单链表的排序①模拟数组②归并排序链表的奇偶重排双指针三、小结一、前言链表是数据结构中重要的一个章节,他的重要性也不言而喻,在未来不管是笔试还是面试都会遇到这类的题目,所以接下来我就会把一些链表的常考的题目全部整理出来供大家学习指正。二、学习刷题网站点击下面链接即可进行刷题学习开始刷题三、刷题先说明一下一些题目取自牛客网面试必刷TOP101里面的一些题目在我以前的文章详细写到过,如果没有用新的方法就不会再做讲解链表题目(一)链表题目(二)环状链表单链表的排序题目链接描述:给定一个节点数为n的无序单链表,对其按升序排序。数据范围:0要求:时间复杂度O(nlogn

图书管理系统——链表实现

实验要求:定义一个包含图书信息(书号、书名、价格)的顺序表或者链表。要求实现下面功能:读入相应的图书数据来完成图书信息表的创建。然后,输出图书表中的图书个数,同时逐行输出每本图书的信息。由于某种原因物价上涨,书店计划提高图书价格,要求计算所有图书的平均价格,低于平均价格的图书价格涨价10%,高于或等于平均价格的图书价格涨价5%,并输出调价后的图书信息。将读入图书的信息逆序存储,逐行输出逆序存储后的每本图书的信息。反转链表找出最贵的图书,并输出其信息。若有多本,则先输出图书个数,再依次输出图书信息。新近一批图书,插入到图书表中的指定位置,并输出插入后的图书表信息。如果图书表中不允许存在书号相同的

经典链表试题(一)

📘北尘_:个人主页🌎个人专栏:《Linux操作系统》《经典算法试题》《C++》《数据结构与算法》☀️走在路上,不忘来时的初心文章目录一、两数相加1、题目介绍2、思路讲解3、代码实现二、合并两个有序链表1、题目介绍2、思路讲解3、代码实现三、环形链表(二)1、题目介绍2、思路讲解3、代码实现四、环形链表(一)1、题目介绍2、思路讲解3、代码实现五、删除链表中的结点1、题目介绍2、思路讲解3、代码实现六、环形链表中的约瑟夫问题1、题目介绍2、思路讲解3、代码实现一、两数相加1、题目介绍给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将

2024王道数据结构第二章链表第10题

/*题目:将一个带头结点的单链表A分解为两个带头节点的单链表A和B,使得A表中含有原表中序号为奇数的元素,而B表中含有序号为偶数的元素,且保持相对顺序不变。出自:王道p38.10*///思路:准备A、B两链表的头结点,然后让工作指针p指向原来A链表的next(遍历),p不空时,每次摘下一个尾插到A,再摘下一个尾插到B。//宏定义#defineElemTypeint//单链表定义typedefstructLNode{ElemTypeval;structLNode*next;}*LinkList,LNode;[注]上述宏定义和结构体定义是答题时要写的答案,并不是代码实现时的定义,代码实现稍有不同,

栈&队列OJ练习题(C语言版)

目录一、括号匹配问题思路:完整版C语言代码:  讲解:二、用队列实现栈思路:完整版C语言代码: 讲解: 三、用栈实现队列思路:完整版C语言代码:讲解:四、设计循环队列思路:完整版C语言代码:讲解:如果栈和队列忘了,不妨看看小生的这两篇复习一下数据结构与算法—栈   数据结构与算法—队列一、括号匹配问题20.有效的括号-力扣(LeetCode) 思路:将左括号放入栈中,通过出栈与为入栈的符号进行比较。 由于我们用C语言做这道题,所以代码前要加上咱们实现的栈的代码,同时要将数据类型STDataType改为char类型。完整版C语言代码:  typedefcharSTDataType;typedef

Leetcode循环队列(数组实现及链表实现)

这道题十分考验我们对队列的理解。文章目录队列的介绍队列的实现进入正题数组的方法链表实现队列的介绍 队列是一种只允许在一段进行插入,在另一端进行删除的数据操作的特殊线性结构,,因此决定了他具有先入先出的特点,其中进行插入操作的一段叫做队尾,出队列的一端叫做队头。队列的实现 队列可以使用链表或者数组进行实现,对于这两种实现方法,使用链表实现效果更好一点,两个指针中front为链表的头,即队列的队头,出数据的话只需要找到front的下一个假设为pre,将front销毁,front置为pre即可,如果是用数组的结构的话,出队列在数组头上出数据,效率会很低。链表实现队列代码如下Queue.h#pragm

LEEDCODE 707设计链表

classMyLinkedList{public:structListNode{intval;ListNode*next;ListNode(intval):val(val),next(nullptr){}};MyLinkedList(){_dummyhead=newListNode(0);_size=0;}intget(intindex){if(index>=0&&index_size){ListNode*cur=_dummyhead->next;for(inti=0;iindex;i++){cur=cur->next;}returncur->val;}elsereturn-1;}voidad

关于链表的建立与操作(c++实现)

关于链表的建立与操作目录1.链表的定义2.单链表的基本操作3.循环链表及其操作4.双向链表及其操作5.用数组模拟链表一、链表的定义因为线性表是静态线性的存储结构,所以为了方便动态地对数据进行处理,我们引入链表这一数据结构。因为链表是动态的存储结构,所以存储在其中的数据地址不一定是连续的。因此在创建链表时不仅需要保存数据本身,还需保存它的地址。所以我们就用一个结构体来存储链表的结点。其中每个结点都要包含两个领域,分别是数据域和指针域,用于存储数据和存储下一个结点的地址。typedefstructnode{intdata;//这里的data可以是任意数据类型structnode*link;}LNo