摘要:
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥)个位置,即将a中的数据由(a0a1⋯an−1)变换为(am⋯an−1a0a1⋯am−1)(最前面的m个数循环移至最后 阅读全文
摘要:
本题要求实现递增顺序表的有序插入函数。L是一个递增的有序顺序表,函数Status ListInsert_SortedSq(SqList &L, ElemType e)用于向顺序表中按递增的顺序插入一个数据。 比如:原数据有:2 5,要插入一个元素3,那么插入后顺序表为2 3 5。 要考虑扩容的问题。 阅读全文
摘要:
本题要求实现顺序表的创建和就地逆置操作函数。L是一个顺序表,函数ListCreate_Sq(SqList &L)用于创建一个顺序表,函数ListReverse_Sq(SqList &L)是在不引入辅助数组的前提下将顺序表中的元素进行逆置,如原顺序表元素依次为1,2,3,4,则逆置后为4,3,2,1。 阅读全文
摘要:
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。 输入格式: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。 输出格式: 输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。 输入样例: 4 1 2 阅读全文
摘要:
本题要求实现一个递归函数,用户传入非负整型参数n,用户依次输出1到n之间的整数。所谓递归函数就是指自己调用自己的函数。 函数接口定义: 其中n为用户传入的参数。 裁判测试程序样例: 输入样例: 输出样例: 阅读全文
摘要:
本题要求在链表中查找第一个数据域取值为x的节点,返回节点的位序。L是一个带头结点的单链表,函数ListLocate_L(LinkList L, ElemType x)要求在链表中查找第一个数据域取值为x的节点,返回其位序(从1开始),查找不到则返回0。例如,原单链表各个元素节点的元素依次为1,2,3 阅读全文
摘要:
本题要求实现带头结点的循环单链表的创建和单链表的区间删除。L是一个带头结点的循环单链表,函数ListCreate_CL用于创建一个循环单链表,函数ListDelete_CL用于删除取值大于min小于max的链表元素。 函数接口定义: Status ListCreate_CL(LinkList &CL 阅读全文
摘要:
本题要求实现顺序表元素的增、删、查找以及顺序表输出共4个基本操作函数。L是一个顺序表,函数Status ListInsert_Sq(SqList &L, int pos, ElemType e)是在顺序表的pos位置插入一个元素e(pos应该从1开始),函数Status ListDelete_Sq( 阅读全文
摘要:
本题要求实现一个合并两个有序链表的简单函数。链表结点定义如下: struct ListNode { int data; struct ListNode *next; }; 函数接口定义: struct ListNode *mergelists(struct ListNode *list1, stru 阅读全文
摘要:
本题要求实现一个函数,统计学生学号链表中专业为计算机的学生人数。链表结点定义如下: struct ListNode { char code[8]; struct ListNode *next; }; 这里学生的学号共7位数字,其中第2、3位是专业编号。计算机专业的编号为02。 函数接口定义: int 阅读全文
摘要:
本题要求实现一个将输入的学生成绩组织成单向链表的简单函数。 函数接口定义: 该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下: 单向链表的头尾指针保存在全局变量head和tail中。 输入为若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束。 裁判测试程 阅读全文
摘要:
本题要求实现一个函数,求链式表的表长。 函数接口定义: 其中List结构定义如下: L是给定单链表,函数Length要返回链式表的长度。 裁判测试程序样例: 输入样例: 输出样例: 阅读全文