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 分)相关推荐

  1. 顺序表创建和就地逆置

    顺序表创建和就地逆置 本题要求实现顺序表的创建和就地逆置操作函数.L是一个顺序表,函数ListCreate_Sq(SqList &L)用于创建一个顺序表,函数ListReverse_Sq(Sq ...

  2. 6-1 带头结点的单链表就地逆置 (10 分)

    6-1 带头结点的单链表就地逆置 (10 分) 本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数.L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要 ...

  3. 6-4 链表逆置 (10 分)

    ** 6-4 链表逆置 (10 分) ** 本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头.链表结点定义如下: struct ListNode {int data;struct ...

  4. 设计一个高效算法,将顺序表的所有元素逆置,要求算法空间复杂度为O(1)。

    void ReverseList(SqList *L) {while(i<length||i>=0){if(j=0;j<(length-1)/2;j++){a=L->data[ ...

  5. 【顺序表】顺序表的就地逆置

    编写算法实现顺序表的就地逆置,即利用原顺序表的存储单位把数据元素顺序反向,例如:1,5,6,9,8逆置为 8,9,6,5,1 题目分析: 就地逆置,就是指借用顺序表自身实现顺序逆置,不借助其他线性表. ...

  6. 数据结构:顺序表的就地逆置

    顺序表的就地逆置 前言 用于个人作业记录 题目 Chapter 2, HLOJ 9503,例2.6.1 顺序表的就地逆置 试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,- ...

  7. java实现单链表就地逆置,单链表的就地逆置讲解

    { List *q; List *p = L->next; L -> next = NULL; //单链表就地逆置 while (p != NULL) { q = p -> next ...

  8. 数据结构趣题——顺序表就地逆置

    利用原表的存储空间将顺序表(a1,a2,--,an)逆置为(an,an-1,---a1). 1: #include <stdio.h> 2: #include <stdlib.h&g ...

  9. Java顺序表就地逆置_顺序表的就地逆置问题

    问题描述:编写一个顺序表的成员函数,实现对顺序表就地逆置的操作.所谓逆置,就是把(a1,a2,a3,...,an)变成(an,an-1,..,a2,a1):所谓就地,即逆置后的数据元素仍在原来顺序表的 ...

最新文章

  1. ARE YOU THE ONE?
  2. 资料分享:送你一本《数据结构与算法JavaScript描述》电子书!
  3. Kaggle心得(一)
  4. android 共享数据,android进程间共享简单数据
  5. YFI 核心开发者 banteg 推出 1:100 万拆分 YFI 代币的新项目 Woofy
  6. 沃兹批评苹果避税:纳税还不如我积极
  7. hibernate教程笔记1
  8. Atitit机器学习原理与概论book attilax总结
  9. 计算机声音控制程序,win10电脑利用EarTrumpet音量控制应用程序使用教程 | 专业网吧维护...
  10. Java全栈工程师(自学)
  11. 机器学习-29-Pointer Network(指针网络)
  12. android 图片方法,分享实现Android图片选择的两种方式
  13. php安装失败,phpcms安装失败怎么办
  14. Linux系统文件服务
  15. 中国的超级计算机叫什么名,超级计算机中国排名是什么?
  16. 计算机网络(4)——计算机网络性能指标
  17. 【例10.1】从键盘输入一些字符,并逐个把它们送到磁盘上去,直到用户输入一个“#”为止。从键盘输入一些字符,并逐个把它们送到磁盘上去,直到用户输入一个“#”为止。
  18. IE8 的开发人员工具 出不来了 怎么办?
  19. arduino灯光装置_Arduino教程中级 项目一 点亮一盏灯
  20. PointNet 学习笔记

热门文章

  1. mysql判断是否迟到_Mysql总结
  2. uni-app - 改变数据后视图无更新变化解决方案,更改数据不刷新(解决修改 data 中的数据视图未更新的问题)
  3. 北京海淀区统计数据集(2016年3月-2019年3月)
  4. vue安装node-sass问题解决
  5. 移动电子商务项目简介
  6. 密码学安全--踪迹隐藏和加密通信
  7. linux命令行 jdb,linux下jdb远程调试tomcat源码
  8. OLED液晶屏如何显示中文呢?
  9. Sublime Text3 下载安装
  10. 程序人生 - 非浙A车辆转入申领浙A区域号牌转籍申请问题温馨提示