数据结构PTA
qy流火
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2-2 学生成绩链表处理 (20分)
本题要求实现两个函数,一个将输入的学生成绩组织成单向链表;另一个将成绩低于某分数线的学生结点从链表中删除。 函数接口定义: struct stud_node *createlist(); struct stud_node *deletelist( struct stud_node *head, int min_score ); 函数createlist利用scanf从输入中获取学生的信息,将其组织成单向链表,并返回链表头指针。链表节点结构定义如下: struct stud_node { int num; /原创 2020-11-01 10:23:07 · 218 阅读 · 1 评论 -
2-1 2比1 Add Two Polynomials
2-1 2比1 Add Two Polynomials (20分) Write a function to add two polynomials. Do not destroy the input. Use a linked list implementation with a dummy head node. Note: The zero polynomial is represented by an empty list with only the dummy head node. Format of原创 2020-10-30 13:53:37 · 248 阅读 · 1 评论 -
1-8 数组循环左移
最开始直接用的数组移动 后来发现直接用链表存储 先断开前面需要放到后面的链,将后部分第一个设为头结点,然后遍历链表将前面断开的链接到后面去,然后最后一个指向NULL原创 2020-10-29 20:29:35 · 341 阅读 · 0 评论 -
1-6 求链式线性表的倒数第K项
标题1-6 求链式线性表的倒数第K项 (20分) 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。 输入格式: 输入首先给出一个正整数K,随后是若干非负整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。 输出格式: 输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。 输入样例: 4 1 2 3 4 5 6 7 8 9 0 -1 输出样例: 7 思路:队列实现 创建一个大小为k的队列当存满之后存一个弹出一个只到最后全部push完成此时再弹出即为倒数第原创 2020-10-29 20:13:11 · 337 阅读 · 0 评论 -
1-3 递增的整数序列链表的插入
思路:创建插入元素的结点然后选择合适位置插入 注意题目要求带有头结点 List Insert( List L, ElementType X ) { List p,q; q=L; p=(List)malloc(sizeof(struct Node)); p->Data=X; p->Next=NULL; while(L->Next&&L->Next->Data<X) { L=L->N原创 2020-10-29 19:36:09 · 162 阅读 · 0 评论 -
1-2 链表逆置
本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下: struct ListNode { int data; struct ListNode *next; }; 函数接口定义: struct ListNode *reverse( struct ListNode *head ); 其中head是用户传入的链表的头指针;函数reverse将链表head逆置,并返回结果链表的头指针。 裁判测试程序样例: #include <stdio.h> #include &l原创 2020-10-29 19:21:40 · 292 阅读 · 0 评论 -
1-1 顺序表操作集
本题要求实现顺序表的操作集。 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下: typedef int Position; typedef struct LNode *List; struct LNode { Eleme原创 2020-10-29 19:11:34 · 271 阅读 · 0 评论 -
PTA 单链表分段逆转(函数题)
给定一个带头结点的单链表和一个整数K,要求你将链表中的每K个结点做一次逆转。例如给定单链表 1→2→3→4→5→6 和 K=3,你需要将链表改造成 3→2→1→6→5→4;如果 K=4,则应该得到4→3→2→1→5→6。 L是**给定的带头结点**的单链表,K是每段的长度。函数K_Reverse应将L中的结点按要求分段逆转。 思路: 首先遍历链表确定需要分段逆转几次(n/k) 建立两个指针数组存储链表结点地址 第一个大小为K用于逆转链表 第二个大小为n/k用于存储每一小段的头结点,注意最后一段如果不需要逆转原创 2020-10-20 17:15:29 · 2721 阅读 · 3 评论 -
PTA 双端队列 数据结构
双端队列(deque,即double-ended queue的缩写)是一种具有队列和栈性质的数据结构,即可以(也只能)在线性表的两端进行插入和删除。若以顺序存储方式实现双端队列,请编写例程实现下列操作: Push(X,D):将元素X插入到双端队列D的头; Pop(D):删除双端队列D的头元素,并返回; Inject(X,D):将元素X插入到双端队列D的尾部; Eject(D):删除双端队列D的尾部元素,并返回。 函数接口定义: bool Push( ElementType X, Deque D ); El原创 2020-10-19 23:50:18 · 2092 阅读 · 0 评论 -
前、中、后缀表达式问题
前缀表达式: 波兰逻辑学家J.Lukasiewicz于1929年提出的另一种表示表达式的方法。 运算符位于操作数之前,不怎么常用。。。 前缀表达式求值: 从右至左扫描,遇到表达式---->压入堆栈、遇到操作符---->弹出栈顶的两个元素,用这个操作符进行运算并将运算结果入栈。重复以上操作将整个表达式扫描完毕,最后栈中的元素就是结果。 中缀转换成前缀: 定义两个栈s1为为运算符栈,s2为结果栈 从右边开始遍历中缀表达式 遇到操作数则将其压入s2 遇到运算符号则比较其与s1栈顶符号的运算优先级 .原创 2020-10-18 11:44:28 · 266 阅读 · 0 评论 -
PTA 堆栈模拟队列
设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S):判断堆栈S是否已满,返回1或0; int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0; void Push(Stack S, ElementType item ):将元素item压入堆栈S; ElementType Pop(Stack S ):删除并返回S的栈顶元素。 实现队列的操作,即入队void AddQ(Eleme原创 2020-10-15 17:21:11 · 907 阅读 · 0 评论 -
3-2 数组元素的区间删除
直接用另一个数组存储删除后的元素然后赋值回去 int Delete( int A[], int L, int minA, int maxA ) { int b[MAXN]; int i,j=0; for(i=0;i<L;i++) { if(A[i]<=minA||A[i]>=maxA) { b[j++]=A[i]; } } for(i=0;i<j;i++)原创 2020-10-14 23:33:21 · 632 阅读 · 0 评论 -
3-1 Deque
A “deque” is a data structure consisting of a list of items, on which the following operations are possible: Push(X,D): Insert item X on the front end of deque D. Pop(D): Remove the front item from deque D and return it. Inject(X,D): Insert item X on the原创 2020-10-14 23:04:43 · 327 阅读 · 0 评论 -
02-线性结构3 Reversing Linked List
Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K=4, you must output 4→3→2→1→5→6. Input Specification: Each原创 2020-10-11 21:35:37 · 184 阅读 · 0 评论
分享