zoukankan      html  css  js  c++  java
  • 数据结构——线性表的顺序表示(2)

    题目来源于王道2018数据结构考研复习指导线性表的综合练习

    编译环境:VS2015

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

    具体实现如下:

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #define initSize 50
     4 
     5 typedef int ElementType;
     6 
     7 typedef struct {
     8     ElementType *data;//顺序表的元素
     9     int length;//表长
    10     int maxSize;//最大容量
    11 }SeqList;
    12 
    13 //初始化线性表
    14 void InitList(SeqList &L) {
    15     L.data = (ElementType*)malloc(sizeof(ElementType)*initSize);
    16     L.length = 0;//置为空表
    17     L.maxSize = initSize;
    18 }
    19 
    20 //创建顺序表
    21 void CreateList(SeqList &L, int n) {
    22     L.length = n;
    23     for (int i = 0;i < n;i++) {
    24         scanf_s("%d", &(L.data[i]));    
    25     }
    26 }
    27 
    28 //元素逆置
    29 void Reverse(SeqList &L) {
    30     int temp;
    31     for (int i = 0;i < L.length/2;i++) {
    32         temp = L.data[i];
    33         L.data[i] = L.data[L.length - i - 1];
    34         L.data[L.length - i - 1] = temp;
    35     }
    36 }
    37 
    38 //显示
    39 void ShowList(SeqList L) {
    40     for (int i = 0;i < L.length;i++) {
    41         printf_s("%3d",L.data[i]);
    42     }
    43 }
    44 
    45 int main() {
    46     SeqList L;
    47     int length;
    48     InitList(L);
    49     printf_s("输入表的长度:");
    50     scanf_s("%d", &length);
    51     printf_s("
    输入初始值:");
    52     CreateList(L, length);
    53     Reverse(L);
    54     printf_s("
    逆置的顺序表的元素如下:");
    55     ShowList(L);
    56     printf_s("
    ");
    57     system("pause");
    58     return 0;
    59 }

    测试结果:

  • 相关阅读:
    office 2007 验证失败的解决方法
    google开不了(解决办法)
    Mobilenet V1
    Windows10系统下IDECLion的安装与配置
    单目相机成像过程
    C++中如何在函数中返回局部变量的指针/引用/地址?
    ResNeXt论文阅读笔记.md
    Mobilenet V2
    Xception
    InceptionV4
  • 原文地址:https://www.cnblogs.com/abyss1114/p/7283300.html
Copyright © 2011-2022 走看看