C语言
wyx_601
快乐地学习,快乐地成长
展开
-
PAT甲级——1001 A+B Format
Calculate a+b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits). Input Specification: Each input file contains one test case. Each case contains a pair of i原创 2020-11-22 16:55:59 · 225 阅读 · 1 评论 -
4-13 先序输出叶结点
本题要求按照先序遍历的顺序输出给定二叉树的叶结点。 函数接口定义: void PreorderPrintLeaves( BinTree BT ); 其中BinTree结构定义如下: typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right; }; 函数PreorderPrintLeaves应按照先序遍历的原创 2020-11-07 14:29:21 · 276 阅读 · 0 评论 -
4-12 求二叉树高度
本题要求给定二叉树的高度。 函数接口定义: int GetHeight( BinTree BT ); 其中BinTree结构定义如下: typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right; }; 要求函数返回给定二叉树BT的高度值。 裁判测试程序样例: #include <stdio.h>原创 2020-11-04 22:35:31 · 213 阅读 · 0 评论 -
4-11 Isomorphic(判断两树同构)
Two trees, T1 and T2, are isomorphic if T1 can be transformed into T2 by swapping left and right children of (some of the) nodes in T1. For instance, the two trees in Figure 1 are isomorphic because they are the same if the children of A, B, and G, but not原创 2020-11-04 16:07:46 · 1343 阅读 · 0 评论 -
复习——2-5 Two Stacks In One Array(两个栈共用一个共享空间)
Write routines to implement two stacks using only one array. Your stack routines should not declare an overflow unless every slot in the array is used. Format of functions: Stack CreateStack( int MaxElements ); int IsEmpty( Stack S, int Stacknum ); int IsF原创 2020-11-02 23:33:35 · 386 阅读 · 0 评论 -
复习——1-7 两个有序链表序列的交集
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。 输出格式: 在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。 输入样例: 1 2 5 -1 2 4 5 8 10 -1 输出样例: 2 5 核心代码: 实际上就是实现两个非降序链表中元素的比较,并用相同的元素构建一个新链表 实现两个非降序链表原创 2020-11-02 23:06:20 · 361 阅读 · 0 评论 -
复习——1-6 求链式线性表的倒数第K项
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。 输入格式: 输入首先给出一个正整数K,随后是若干非负整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。 输出格式: 输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。 输入样例: 4 1 2 3 4 5 6 7 8 9 0 -1 输出样例: 7 题目转化: 将输入的一串非负整数以尾插法正序放入链表,求这一顺序链表的倒数第K项 <=>将输入的一串非负整数以头插法倒序放入链表,求这一倒序原创 2020-11-02 21:50:04 · 264 阅读 · 0 评论 -
复习——-3-2 数组元素的区间删除
给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。 函数接口定义: int Delete( int A[], int L, int minA, int maxA ); 其中A是整型数组,存储原始线性表的元素;L是表长,即A中元素的个数;minA和maxA分别为待删除元素的值域的下、上界。函数Delete应将A中所有值大于minA而且小于maxA的元素删除,同时保证表中剩余元素保持顺序存储,并且相对位置不变,最后返回删除后原创 2020-11-02 21:30:40 · 212 阅读 · 0 评论 -
第三、四周练习——1-3递增的整数序列链表的插入
本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。 函数接口定义: List Insert( List L, ElementType X ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; typedef PtrToNode List;原创 2020-09-17 20:57:11 · 253 阅读 · 0 评论 -
第三、四周练习——1-2链表逆置
本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下: struct ListNode { int data; struct ListNode *next; }; 函数接口定义: struct ListNode *reverse( struct ListNode *head ); 其中head是用户传入的链表的头指针;函数reverse将链表head逆置,并返回结果链表的头指针。 裁判测试程序样例: #include <stdio.h> #原创 2020-09-17 13:43:39 · 337 阅读 · 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-09-17 12:38:38 · 226 阅读 · 0 评论