![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
算法笔记
随风飘散的蒲公英~~
这个作者很懒,什么都没留下…
展开
-
6-4 线性表元素的区间删除 (20 分)
给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。 函数接口定义: List Delete( List L, ElementType minD, ElementType maxD ); 其中List结构定义如下: typedef int Position; typedef struct LNode List; struct LNode { ElementType Data[MAXSIZE]; Position Last;原创 2021-03-10 21:18:38 · 289 阅读 · 0 评论 -
6-2 带头结点的链式表操作集 (20 分)
本题要求实现带头结点的链式表操作集。 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下: typedef struct LNode *PtrToLNode; struct LNode { ElementType Data; PtrTo原创 2021-03-10 20:41:34 · 616 阅读 · 0 评论 -
6-6 两个有序链表序列的合并 (15 分)
本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; typedef PtrToNode List; /* 定义单链表类型 */原创 2021-03-12 15:31:29 · 288 阅读 · 0 评论 -
7-6 堆栈模拟队列 (25 分)
设已知有两个堆栈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(Elemen原创 2021-03-27 21:11:00 · 541 阅读 · 0 评论 -
6-1 顺序表操作集 (20 分)
6-1 顺序表操作集 (20 分) 本题要求实现顺序表的操作集。 函数接口定义: 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 LN原创 2021-03-06 18:43:18 · 754 阅读 · 0 评论 -
7-7 串的模式匹配 (25 分)
给定两个由英文字母组成的字符串 String 和 Pattern,要求找到 Pattern 在 String 中第一次出现的位置,并将此位置后的 String 的子串输出。如果找不到,则输出“Not Found”。 本题旨在测试各种不同的匹配算法在各种数据情况下的表现。各组测试数据特点如下: 数据0:小规模字符串,测试基本正确性; 数据1:随机数据,String 长度为 10 5 ,Pattern 长度为 10; 数据2:随机数据,String 长度为 10 5 ,Pattern 长度为 1原创 2021-03-27 11:39:18 · 913 阅读 · 0 评论 -
6-3 合并两个有序数组 (20 分)
要求实现一个函数merge,将长度为m的升序数组a和长度为n的升序数组b合并到一个新的数组c,合并后的数组仍然按升序排列。 函数接口定义: void printArray(int* arr, int arr_size); /* 打印数组,细节不表 / void merge(int a, int m, int* b, int n, int* c); /* 合并a和b为c */ 其中a和b是按升序排列的数组,m和n分别为数组a、b的长度;c为合并后的升序数组。 裁判测试程序样例: #inc原创 2021-03-10 20:43:43 · 949 阅读 · 0 评论 -
6-5 递增的整数序列链表的插入 (15 分)
本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。 函数接口定义: List Insert( List L, ElementType X ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; typedef PtrToNode List;原创 2021-03-12 08:50:21 · 377 阅读 · 0 评论 -
7-1 一元多项式的乘法与加法运算 (20 分)
设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。 输入样例: 4 3 4 -5 2 6 1 -2 0 3 5 20 -7 4 3 1 输出样例: 15 24 -25 22 30 21 -10 20原创 2021-03-15 21:03:36 · 151 阅读 · 0 评论