c++实现线性表增删改查

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
using namespace std;

typedef struct SqList{
    int *elem;
    int length;
};
int Init_List(SqList *L);
int Insert_List(SqList *L,int ele,int num);
int Delete_List(SqList *L,int num);
void Display_List(SqList L);
int Append_List(SqList *L,int ele);
int Chanege_List(SqList *L,int ele,int num);
int Find_List(SqList *L,int num);
int main()
{
    SqList L1;
    int a;
    Init_List(&L1);
    cout<<"---append---"<<endl;
    cout<<"---delete---"<<endl;
    cout<<"---change---"<<endl;
    cout<<"--- find ---"<<endl;
    cout<<"---insert---"<<endl;
    cout<<"---display---"<<endl;
    while(1){
        scanf("%d",&a);
        switch(a){
            case 1:
                Append_List(&L1,20);
                break;
            case 2:
                Delete_List(&L1,2);
                break;
            case 3:
                Chanege_List(&L1,2,2);
                break;
            case 4:
                Find_List(&L1,2);
                break;
            case 5:
                Insert_List(&L1,9,3);
                break;
            case 6:
                Display_List(L1);
                break;
        }
    }
    return 0;
}
/*=====初始化=====*/
int Init_List(SqList *L){
    L->elem = new int [MAX_SIZE];
    if(!L->elem) {return -1;}
    L->length = 5;
    for(int i=0;i<L->length;i++){
        L->elem[i] = i;
    }
    return 1;
}
/*=====追加=====*/
int Append_List(SqList *L,int ele){
    int i,j;
    L->length++;
    L->elem[L->length-1] = ele;
}
/*=====删除=====*/
int Delete_List(SqList *L,int num){
    printf("\dlete...\n");
    int i,j;
    for(i=num-1;i<=L->length;i++){
        L->elem[i]=L->elem[i+1];
    }
    L->length = L->length - 1;
    printf("insert %d is OK...\n\n\n");
}
/*=====修改=====*/
int Chanege_List(SqList *L,int ele,int num){
    L->elem[num] = ele;
}
/*=====查询=====*/
int Find_List(SqList *L,int num){
    cout<<"L"<<"["<<num<<"]"<<"="<<L->elem[num-1]<<endl;
}
/*=====插入=====*/
int Insert_List(SqList *L,int ele,int num){
    printf("\ninsert...\n");
    int i,j;
    L->length = L->length + 1;
    for(i=L->length;i>=num;i--){
        L->elem[i-1]=L->elem[i-2];
    }
    L->elem[num-1] = ele;
    printf("insert %d is OK...\n\n\n",ele);
}

/*=====显示=====*/
void Display_List(SqList L){
    printf("===display===\n");
    for(int i=0;i<L.length;i++){

        printf("%d`",L.elem[i]);
    }
    printf("\n");
}

 

转载于:https://my.oschina.net/lafter/blog/901760

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值