數據結構2-順序表的建立、刪除、遍歷和插入操作


數據結構2-順序表的建立、刪除、遍歷和插入操作

#include<stdio.h>
#include<iostream>
#define MaxSize 10
using namespace std;
typedef struct //定義順序表結構體
{
    int data[MaxSize];
    int length;
} SqList;
//順序表初始化函數
void InitSqList(SqList &sqList)
{
    sqList.length = 0;
    int a[10] = {1,2,3,4,5,6,7,8,9,10};
    for(int i = 0; i < MaxSize; i++)
    {
        sqList.data[i] = a[i];
        sqList.length ++;
    }
}

//刪除第i個元素(注意這里是第i個位置)此元素用e帶回
bool ListDelete(SqList &sqList,int i,int &e)
{
    if(i < 1||i > sqList.length)
    {
        return false;
    }
    e = sqList.data[i-1];
    for(int j = i; j < sqList.length; j++)
    {
        sqList.data[j-1] = sqList.data[j];
    }
    sqList.length--;
    return true;
}

//在第i個位置插入元素(注意這里是第i個位置)
bool ListInsert(SqList &sqList,int i,int e)
{
    if(i < 1||i > sqList.length||sqList.length >= MaxSize)
    {
        return false;
    }
    for(int j = sqList.length; j > i; j--)
    {
        sqList.data[j] = sqList.data[j-1];
    }
    sqList.data[i-1] = e;
    sqList.length ++;
    return true;
}

//打印順序表
void printSqList(SqList sqList)
{
    for(int i = 0; i < sqList.length; i++)
    {
        printf("%d\n",sqList.data[i]);
    }

}

int main()
{
    SqList sqList;
    printf("執行初始化函數\n");
    InitSqList(sqList);
    printf("初始化函數完成\n");
    printf("初始長度為%d\n",sqList.length);
    printf("打印順序表\n");
    printSqList(sqList);
    printf("驗證刪除超出范圍\n");
    int e;
    if(ListDelete(sqList,11,e))
    {
        printf("e為%d\n",e);
    }
    else
    {
        printf("刪除失敗\n");
    }
    printf("驗證刪除成功\n");
    if(ListDelete(sqList,9,e))
    {
        printf("e為%d\n",e);
        printf("打印順序表\n");
        printSqList(sqList);
    }
    else
    {
        printf("刪除失敗\n");
    }


    printf("驗證插入超出范圍\n");
    if(ListInsert(sqList,11,9))
    {
        printf("e為%d\n",e);
    }
    else
    {
        printf("插入失敗\n");
    }
    printf("驗證插入成功\n");
    if(ListInsert(sqList,9,9))
    {
        printf("e為%d\n",e);
        printf("打印順序表\n");
        printSqList(sqList);
    }
    else
    {
        printf("插入失敗\n");
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM