
高级程序设计
codeTcy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[数据结构]两两交换链表中的节点(leetcode24)c++
两两交换链表中的节点(leetcode24)c++https://leetcode-cn.com/problems/swap-nodes-in-pairs/ //1.分别遍历偶数节点和奇数节点 //2.交换两个节点 //3.更新pre,指向交换后的头/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNo原创 2020-07-07 21:19:19 · 227 阅读 · 0 评论 -
[数据结构]奇偶链表(leetcode328)c++
奇偶链表(leetcode328)c++https://leetcode-cn.com/problems/odd-even-linked-list///将奇节点放在一个链表里,偶链表放在另一个链表里。然后把偶链表接在奇链表的尾部/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(n原创 2020-07-07 21:18:00 · 240 阅读 · 0 评论 -
[数据结构]分隔链表(leetcode725)c++
分隔链表(leetcode725)c++https://leetcode-cn.com/problems/split-linked-list-in-parts/ //如果链表有N个结点,则分隔的链表中每个部分中都有n/k个结点,且前N%k部分有一个额外的结点。 //对于每个部分,有 width + (i < rem ? 1 : 0) 个结点 //首先计算得长度,每个部分的宽度 //然后创建vector //最后直接拆分原链表,把新链表存入vector中原创 2020-07-07 21:15:07 · 306 阅读 · 0 评论 -
[数据结构]链表组件(leetcode817)c++
链表组件(leetcode817)c++https://leetcode-cn.com/problems/linked-list-components/ //G中所有的元素能构成多少个head中相连的子链表? //遍历链表,对于head中的每个节点 a 判断其 a->val 是否在G中存在,如果存在那么G中对应的 //a->val 很可能是一个组件;此时还得检查一下 a->next(假设为 b), 如果 b->val 也在G中, //那么 (a-原创 2020-07-07 21:13:25 · 352 阅读 · 0 评论 -
[数据结构]排序链表(leetcode148)c++
排序链表(leetcode148)c++https://leetcode-cn.com/problems/sort-list/ //插入到vector中 //vector排序 //重新相连/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL)原创 2020-07-07 21:11:25 · 202 阅读 · 0 评论 -
[数据结构]旋转链表(leetcode61)c++
旋转链表(leetcode61)c++https://leetcode-cn.com/problems/rotate-list/ //先将链表闭合成环 //然后找到相应的位置断开这个环,确定新的链表头和链表尾 //1. 找到旧的尾部并将其与链表头相连,整个链表闭合成环,同时计算出链表的长度 n。 //2. 找到新的尾部,第 (n - k % n - 1) 个节点 ,新的链表头是第 (n - k % n) 个节点。 //3. 断开环 new_tail->nex原创 2020-07-07 21:09:48 · 196 阅读 · 0 评论 -
[数据结构]重排链表(leetcode143)c++
是原创 2020-07-07 21:07:02 · 477 阅读 · 0 评论 -
[数据结构]一元多项式的加/减法运算(链表)
一元多项式的加/减法运算(链表)问题描述 :假设2个稀疏一元多项式分别由带头结点的有序单链表A和B存储(指数项递增有序)。现要求设计一个算法,实现稀疏一元多项式的加减法计算。要求使用A和B的原存储空间(运算后B不再存在,A链表中保存结果多项式)。输入中的单链表的长度不得在计算算法中利用,仅作为建表使用。注意:加/减法计算后,如某一项的结果系数为0,则该项要从多项式链表中删除。输入说明 :第一行:加/减法选择(0:加法 1:减法)第二行:一元多项式A的项数第三行:一元多项式A的各项的系数(系数原创 2020-07-07 21:00:47 · 4375 阅读 · 0 评论 -
[数据结构]长整数加法运算(链表)
长整数加法运算(链表)问题描述 :假设2个任意长度的整数x、y分别由双向链表A和B存储,现要求设计一个算法,实现x+y。计算结果存储在链表C中。说明:由于A和B输出时需要从头至尾遍历,而做加法时需要从尾至头遍历,因此使用双向链表存储。可以从长整数的低位开始拆分(4位为一组,即不超过9999的非负整数),依次存放在链表的每个结点的数据域中;头结点的数据域存放正负数标志(正数或0:1,负数:-1)。输入说明 :第一行:长整数x第二行:长整数y输出说明 :第一行:格式化后的长整数x(从低位到高原创 2020-07-07 20:59:05 · 6804 阅读 · 1 评论 -
[数据结构]圆桌问题(循环链表)
圆桌问题(循环链表)问题描述 :圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人之后,圆桌上围坐的剩余的n个人全是好人。输入说明 :输入:好人和坏人的人数n(<=32767)、步长m(<=50);输出说明 :输出2n个大写字母,‘G’表示好人,‘B’表示坏人,50个字母为一行原创 2020-06-18 10:34:20 · 1119 阅读 · 0 评论 -
[数据结构]求有序序列的交集(链表)
求有序序列的交集(链表)问题描述 :使用带头结点的单链表编程:有两个有序序列,分别表示两个集合。求它们的交集并输出。注意:这里要利用到“有序”的特性。输入说明 :第一行输入序列A的信息:第一个整数n(0<=n<=100),表示共有n个元素,其后有n个整数,表示n个元素的数据第一行输入序列B的信息:第一个整数n(0<=n<=100),表示共有n个元素,其后有n个整数,表示n个元素的数据注:两个序列输入时保证有序输出说明 :输出交集的元素序列,输出格式见范例。原创 2020-06-18 10:32:20 · 1305 阅读 · 0 评论 -
[数据结构]求序列的交集(链表)
求序列的交集(链表)问题描述 :使用带头结点的单链表编程:有两个序列,分别表示两个集合。求它们的交集并输出。输入说明 :第一行输入序列A的信息:第一个整数n(0<=n<=100),表示共有n个元素,其后有n个整数,表示n个元素的数据第一行输入序列B的信息:第一个整数n(0<=n<=100),表示共有n个元素,其后有n个整数,表示n个元素的数据输出说明 :输出交集的元素序列,输出格式见范例。如果交集为空,则输出“head–>tail”交集里的元素顺序,依原创 2020-06-18 10:31:06 · 1681 阅读 · 0 评论 -
[数据结构]悲剧文本(链表)
悲剧文本问题描述 :你有一个破损的键盘。键盘上的所有键都可以正常工作,但有时Home键或者End键会自动按下。你并不知道键盘存在这一问题,而是专心地输入英文单词,甚至连显示器都没瞧一眼。当你看显示器时,展现在你面前的是一段悲剧的文本。你的任务是计算这段文本有几个单词。输入包含多组数据。每组数据占一行,包含不超过20000个英文字母、空格、字符“[”或者“]”(这多达20000个字符的数据会显示在一行,不用担心会换行)。其中字符“[”表示Home键(将光标定位到一行的开头),“]”表示End键(将原创 2020-06-17 20:49:49 · 935 阅读 · 0 评论 -
[数据结构]集合的操作(链表)
集合的操作问题描述 :输入A、B、C、D四个集合(集合中无重复元素,且元素值都大于0),分别存储在不带头结点的链表中。本程序先将四个集合执行以下操作:1.对A、B、C、D分别进行升序排序;(该功能已实现,见函数sort)。2.做A=A+B操作:先执行两个有序链表A和B的合并,并仍然保持有序,结果存储在A中,然后删除重复元素;(该功能已实现,见函数merge和purge)。3.做A=A-C操作:将C中出现的元素从A中删除;(该功能已实现,见函数subtract)。4.对D中出现的元素,逐一到A中原创 2020-06-17 20:47:49 · 1041 阅读 · 0 评论 -
[数据结构]删除链表第index个结点(链表)
删除链表第index个结点问题描述 :输入若干(不超过100个)非负整数,创建一个不带头结点的单向链表。在输入一个位置index,从链表中删除第index个结点,输出结果链表。请编写deleteNode函数,完成删除操作。deleteNode函数的原型如下:struct student *deleteNode(struct student *head,int index)输入说明 :首先输入若干非负整数,每个整数作为数据放入一个链表结点中,输入-1表示输入结束。然后输入若干组整数,每组一行,原创 2020-06-17 20:45:12 · 934 阅读 · 0 评论 -
[数据结构]在链表指定位置插入结点(链表)
在链表指定位置插入结点(链表)问题描述 :输入若干(不超过100个)非负整数,创建一个不带头结点的单向链表。再输入一个位置index以及一个数据data,程序中首先创建一个新结点s,s的数据成员为data,然后调用函数insertNode将s插入到链表的指定位置index处,最后输出结果链表。请编写insertNode函数,完成插入操作。insertNode函数的原型如下:struct student *insertNode(struct student *head, struct student原创 2020-06-17 20:43:01 · 5523 阅读 · 0 评论 -
[数据结构]查找序列元素(链表)
查找序列元素(链表)问题描述 :使用带头结点的单链表编程:一群学生排成一行,输入一个学号,请确定该学号学生所在的位置。输入说明 :第一行输入学生信息:第一个整数n(0<=n<=100),表示共有n个学生,其后有n个整数,表示n个学生的学号第二行及以后各行,每行输入一个整数,表示要查找的学生学号。输出说明 :对于每个要查找的学号,输出一个整数,表示要查找学生的位置。如果共有n个学生,则位置序号为1~n。如果学生不存在,输出“no”,不包括双引号。每个输出占一行。输入范例 :原创 2020-06-16 20:37:08 · 1452 阅读 · 0 评论