尼采般地抒情

尼采般地抒情

尼采般地抒情

音乐盒

站点信息

文章总数目: 321
已运行时间: 1782

类似一个简易版本的数组

代码

  • 顺序表存储形式
/* 顺序表的存储形式就是连续存储空间,地址连续的,其实就是数组 */
typedef struct {
    int *arr;
    int length;
}SqList;
  • 打印
  • 取值
  • 查找
  • 插入
  • 删除
  • 升序
  • 逆置
#include<bits/stdc++.h>
using namespace std;
#define MAXSIZE 100

/**
 * 顺序表
 * 
 * 顺序表的基本操作: 初始化、打印、取值、查找、插入、删除、升序、逆置
 */


/* 顺序表的存储形式就是连续存储空间,地址连续的,其实就是数组 */
typedef struct {
    int *arr;
    int length;
}SqList;


/* 初始化 */
void InitList(SqList &L)
{
    L.arr = new int[MAXSIZE];     
    if (!L.arr) exit(-1);               
    L.length = 0;                     
}

/* 初始化添加元素 */
void ListInsert(SqList &L) {
    cout << "请输入元素个数n:";
    int n;
    cin >> n;
    for (int i = 0; i < n;i++){
        cin >> L.arr[i];
        L.length++;
    }
}
/* 打印 */
void TraverseList(SqList &L) {
    cout << "该顺序表元素遍历结果为:";
    for (int i = 0; i < L.length;i++) {
        cout << L.arr[i] << ' ';
    }
    cout << "\n";
}
/* 最大值 */
void NumberMax (SqList &L){
    cout << "该顺序表最大值为:";
    int max = L.arr[0];
    for (int i = 0; i < L.length;i++) {
        if(L.arr[i]>max)
            max = L.arr[i];
    }
    cout << max<<"\n";
}

/* 插值 */
void InsertOneElement (SqList &L) {
    cout << "请分别输入在n位置插入的e值:";
    int n;
    int e;
    cin >> n >> e;
    for (int i = L.length - 1; i >= n-1;i--){
        L.arr[i + 1] = L.arr[i];
    }
    L.arr[n-1] = e;
    L.length++;
    cout << "\n"<<"插入值之后的顺序表为:";
    TraverseList(L);
}

/* 删除 */
void DeleteOneElement (SqList &L) {
    cout << "请输入要删除n位置的n值:";
    int n;
    cin >> n;
    for (int i = 0; i < L.length;i++){
        if (i>=n-1){
            L.arr[i] = L.arr[i + 1];
        }
    }
    L.length--;
    cout << "\n"<<"删除值之后的顺序表为:";
    TraverseList(L);
}
/* 升序 */
void IncrList (SqList &L) {
    cout << "升序之后的顺序表为:";
    for (int i = 0; i < L.length;i++){
        for (int j = 0; j < L.length;j++){
            if (L.arr[j]>L.arr[i]) {
                int temp;
                temp = L.arr[j];
                L.arr[j] = L.arr[i];
                L.arr[i] = temp;
            }
        }
    }
    TraverseList(L);
}
/* 逆置 */
void ReverseList (SqList &L) {
    cout << "逆序之后……";
    for (int i = 0; i < L.length / 2;i++){
        int temp;
        temp = L.arr[i];
        L.arr[i] = L.arr[L.length-i-1];
        L.arr[L.length-i-1] = temp;
    }
    TraverseList(L);
}


int main () {
    SqList test;
    InitList(test);//1
    ListInsert(test);//1
    TraverseList(test);//1
    NumberMax(test);//2
    InsertOneElement(test);//3
    DeleteOneElement(test);//4
    IncrList(test);//5
    ReverseList(test);//6
}

评论区

什么都不舍弃,什么也改变不了