6-1 顺序表创建和就地逆置 (10 分)
6-1 顺序表创建和就地逆置 (10 分)
本题要求实现顺序表的创建和就地逆置操作函数。L是一个顺序表,函数ListCreate_Sq(SqList &L)用于创建一个顺序表,函数ListReverse_Sq(SqList &L)是在不引入辅助数组的前提下将顺序表中的元素进行逆置,如原顺序表元素依次为1,2,3,4,则逆置后为4,3,2,1。
函数接口定义:
Status ListCreate_Sq(SqList &L);
void ListReverse_Sq(SqList &L);
裁判测试程序样例:
//库函数头文件包含
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>//函数状态码定义
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2typedef int Status;//顺序表的存储结构定义
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType; //假设线性表中的元素均为整型
typedef struct{ElemType* elem; //存储空间基地址int length; //表中元素的个数int listsize; //表容量大小
}SqList; //顺序表类型定义Status ListCreate_Sq(SqList &L);
void ListReverse_Sq(SqList &L);int main() {SqList L;ElemType *p;if(ListCreate_Sq(L)!= OK) {printf("ListCreate_Sq: 创建失败!!!\n");return -1;}ListReverse_Sq(L);if(L.length){for(p=L.elem;p<L.elem+L.length-1;++p){printf("%d ",*p);}printf("%d",*p); }return 0;
}
/* 请在这里填写答案 */
输入格式:
第一行输入一个整数n,表示顺序表中元素个数,接下来n个整数为表元素,中间用空格隔开。
输出格式:
输出逆置后顺序表的各个元素,两个元素之间用空格隔开,最后一个元素后面没有空格。
输入样例:
4
1 2 3 4
输出样例:
4 3 2 1
代码:
/* 请在这里填写答案 */
Status ListCreate_Sq(SqList &L) {L.elem = (ElemType *) malloc(sizeof(ElemType) * LIST_INIT_SIZE);L.length = 0;L.listsize = LIST_INIT_SIZE;int N;scanf("%d", &N);while (N > L.listsize) {L.elem = (ElemType *) malloc(sizeof(ElemType) * N);L.listsize = N;}for (int i = 0; i < N; i++) {scanf("%d", &L.elem[i]);L.length++;}if (!L.elem)exit(OVERFLOW);return 1;}void ListReverse_Sq(SqList &L) {int tp;for (int i = 0; i < L.length / 2; i++) {tp = L.elem[i];L.elem[i] = L.elem[L.length - i - 1];L.elem[L.length - i - 1] = tp;}}
6-1 顺序表创建和就地逆置 (10 分)相关推荐
- 顺序表创建和就地逆置
顺序表创建和就地逆置 本题要求实现顺序表的创建和就地逆置操作函数.L是一个顺序表,函数ListCreate_Sq(SqList &L)用于创建一个顺序表,函数ListReverse_Sq(Sq ...
- 6-1 带头结点的单链表就地逆置 (10 分)
6-1 带头结点的单链表就地逆置 (10 分) 本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数.L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要 ...
- 6-4 链表逆置 (10 分)
** 6-4 链表逆置 (10 分) ** 本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头.链表结点定义如下: struct ListNode {int data;struct ...
- 设计一个高效算法,将顺序表的所有元素逆置,要求算法空间复杂度为O(1)。
void ReverseList(SqList *L) {while(i<length||i>=0){if(j=0;j<(length-1)/2;j++){a=L->data[ ...
- 【顺序表】顺序表的就地逆置
编写算法实现顺序表的就地逆置,即利用原顺序表的存储单位把数据元素顺序反向,例如:1,5,6,9,8逆置为 8,9,6,5,1 题目分析: 就地逆置,就是指借用顺序表自身实现顺序逆置,不借助其他线性表. ...
- 数据结构:顺序表的就地逆置
顺序表的就地逆置 前言 用于个人作业记录 题目 Chapter 2, HLOJ 9503,例2.6.1 顺序表的就地逆置 试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,- ...
- java实现单链表就地逆置,单链表的就地逆置讲解
{ List *q; List *p = L->next; L -> next = NULL; //单链表就地逆置 while (p != NULL) { q = p -> next ...
- 数据结构趣题——顺序表就地逆置
利用原表的存储空间将顺序表(a1,a2,--,an)逆置为(an,an-1,---a1). 1: #include <stdio.h> 2: #include <stdlib.h&g ...
- Java顺序表就地逆置_顺序表的就地逆置问题
问题描述:编写一个顺序表的成员函数,实现对顺序表就地逆置的操作.所谓逆置,就是把(a1,a2,a3,...,an)变成(an,an-1,..,a2,a1):所谓就地,即逆置后的数据元素仍在原来顺序表的 ...
最新文章
- ARE YOU THE ONE?
- 资料分享:送你一本《数据结构与算法JavaScript描述》电子书!
- Kaggle心得(一)
- android 共享数据,android进程间共享简单数据
- YFI 核心开发者 banteg 推出 1:100 万拆分 YFI 代币的新项目 Woofy
- 沃兹批评苹果避税:纳税还不如我积极
- hibernate教程笔记1
- Atitit机器学习原理与概论book attilax总结
- 计算机声音控制程序,win10电脑利用EarTrumpet音量控制应用程序使用教程 | 专业网吧维护...
- Java全栈工程师(自学)
- 机器学习-29-Pointer Network(指针网络)
- android 图片方法,分享实现Android图片选择的两种方式
- php安装失败,phpcms安装失败怎么办
- Linux系统文件服务
- 中国的超级计算机叫什么名,超级计算机中国排名是什么?
- 计算机网络(4)——计算机网络性能指标
- 【例10.1】从键盘输入一些字符,并逐个把它们送到磁盘上去,直到用户输入一个“#”为止。从键盘输入一些字符,并逐个把它们送到磁盘上去,直到用户输入一个“#”为止。
- IE8 的开发人员工具 出不来了 怎么办?
- arduino灯光装置_Arduino教程中级 项目一 点亮一盏灯
- PointNet 学习笔记