
数据结构
ImwaterP
Less interests,more interest.
展开
-
【PTA数据结构】7-4 链表去重 (25 分)
题目要求给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出去重后的链表 21→-15→-7,还有被删除的链表 -15→15。输入格式:输入在第一行给出 L 的第一个结点的地址和一个正整数 N(≤10^5 ,为结点总数)。一个结点的地址是非负的 5 位整数,空地址 NULL 用 -1 来表示。随后 N 行,每行按以下格原创 2021-10-12 17:24:43 · 2300 阅读 · 2 评论 -
【PTA数据结构】7-3 重排链表(带详细解释)
给定一个单链表 L1→L2→…→Ln−1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln−1→L2→…。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。输入格式:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址和结点总个数,即正整数N (≤)。结点的地址是5位非负整数,NULL地址用−1表示。接下来有N行,每行格式为:Address Data Next其中Address是结点地址;Data是该结点保存的数据,为不超过的正整数;Next是下一结点的地址原创 2021-10-10 18:26:34 · 4563 阅读 · 1 评论 -
【PTA数据结构】7-2 两个有序链表序列的合并
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。### 输入样例:1 3 5 -12 4 6 8 10 -1结尾无空行输出样例:1 2 3 4 5 6 8 10结尾无空行解答:#define _CRT_SE原创 2021-10-09 22:29:56 · 2046 阅读 · 0 评论 -
【PTA数据结构】7-1 数组循环左移(带解析)
这个题很多答案只是改变了输出的顺序,并没有对数组进行改变。本文章的解法完全按照题目要求,并且给了详细注释。原创 2021-10-09 21:12:20 · 1865 阅读 · 0 评论 -
【PTA数据结构】6-5 链表逆置(两种方法)
本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下:struct ListNode { int data; struct ListNode *next;};函数接口定义:struct ListNode *reverse( struct ListNode *head );其中head是用户传入的链表的头指针;函数reverse将链表head逆置,并返回结果链表的头指针。裁判测试程序样例:#include <stdio.h>原创 2021-10-09 20:03:53 · 4648 阅读 · 1 评论 -
【PTA数据结构】6-4 递增的整数序列链表的插入
本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。函数接口定义:List Insert( List L, ElementType X );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List;原创 2021-10-09 12:09:39 · 1344 阅读 · 0 评论 -
【PTA数据结构】6-3 删除单链表偶数节点 (20 分)
本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中偶数值的结点删除。链表结点定义如下:struct ListNode { int data; struct ListNode *next;};函数接口定义:struct ListNode *createlist();struct ListNode *deleteeven( struct ListNode *head );函数createlist从标准输入读入一系列正整数,按照读入顺序建立单链表。当读到−1时表示输入结束原创 2021-09-29 13:13:02 · 1557 阅读 · 0 评论 -
【PTA数据结构】6-2 链式表的按序号查找
本题要求实现一个函数,找到并返回链式表的第K个元素。函数接口定义:ElementType FindKth( List L, int K );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef PtrToLNode List;L是给定单链表,函数FindKth要返回链式表的第K个元素。如果该元素不存在,则返回ERROR原创 2021-09-26 22:37:34 · 730 阅读 · 0 评论 -
【PTA数据结构】6-1 数组元素的区间删除
本题我一共想了三种方法。其中暴力解法是会被判定超时!另外两种是两种不同的思路去解答。给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。函数接口定义:int Delete( int A[], int L, int minA, int maxA );其中A是整型数组,存储原始线性表的元素;L是表长,即A中元素的个数;minA和maxA分别为待删除元素的值域的下、上界。函数Delete应将A中所有值大于minA而且小于原创 2021-09-26 22:35:23 · 1011 阅读 · 1 评论 -
【PTA数据结构练习】7-2 通讯录排序
输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。输出格式:按照年龄从大到小输出朋友的信息,格式同输出。输入样例:3zhang 19850403 1391原创 2021-09-24 22:20:55 · 804 阅读 · 0 评论 -
【PTA数据结构练习】7-1 查找书籍
给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。输出格式:在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。输入样例:3Programming in C21.5Programming in VB18.5Programming in Delphi原创 2021-09-24 22:18:58 · 901 阅读 · 1 评论 -
【PTA数据结构习题】6-4 有序表的增删改查操作 (20 分)(代码有解析)
首先输入一个正整数N(1≤N≤1000)和一个无重复元素的、从小到大排列的、N个元素的有序表,然后在屏幕上显示以下菜单(编号和选项)。[1] Insert[2] Delete[3] Update[4] Query[Other option] End用户可以反复对该有序表进行插入、删除、修改和查找操作,也可以选择结束。当用户输入编号1~4和相关参数时,将分别对该有序表进行插入、删除、修改和查找操作,输入其他编号,则结束操作。本题要求实现4个函数,分别在有序表(数组)中插入、删除、修改、查找一个原创 2021-09-23 15:03:58 · 4168 阅读 · 1 评论 -
【PTA数据结构习题】6-3 函数实现字符串逆序 (15 分)
本题要求实现一个字符串逆序的简单函数。函数接口定义:void f( char *p );函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。裁判测试程序样例:#include <stdio.h>#define MAXS 20void f( char *p );void ReadString( char *s ); /* 由裁判实现,略去不表 */int main(){ char s[MAXS]; ReadStr原创 2021-09-23 15:00:17 · 2895 阅读 · 1 评论 -
【PTA数据结构习题】6-2 在数组中查找指定元素
6-2 在数组中查找指定元素 (15 分)本题要求实现一个在数组中查找指定元素的简单函数。函数接口定义:int search( int list[], int n, int x );其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。裁判测试程序样例:#include <stdio.h>#define MAXN 10int search( int list[原创 2021-09-23 00:03:52 · 3093 阅读 · 0 评论 -
【PTA数据结构习题】6-1 分类统计字符个数
6-1 分类统计字符个数 (15 分)本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。函数接口定义:void StringCount( char s[] );其中 char s[] 是用户传入的字符串。函数StringCount须在一行内按照letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。裁判测试程序样例:#include <stdio.h>#de原创 2021-09-22 23:59:55 · 1689 阅读 · 0 评论