C语言 数据结构 线性表 顺序表 线性表的顺序存储结构

//C语言--数据结构--线性表  顺序表 线性表的顺序存储结构
//其实顺序表就相当于一个数组

#include
#include
#include
#include
#include

using namespace std;

#define MAXSIZE 10//定义顺序表的长度

typedef struct{
    char  data[MAXSIZE];//就是char data[100]  MAXSIZE就是顺序表的最大长度
    int       length;   //这个是结构体里的数据的个数
}ArrayList, *List;

//初始化顺序表
void init(ArrayList *list){
    list->length = 0;
    cout << "顺序表初始化成功!!!\n" << endl;
}

//输出全部的顺序表元素
void getAll(ArrayList *list){
    for(int i=0;i < list->length;i++){
        printf("第 %d 个元素是: %c\n",i,list->data[i]);
    }
}

//在顺序表的最后添加元素
int append(ArrayList *list,char data){
    if(list->length > MAXSIZE - 1){
        cout << "顺序表已满!!!\n" << endl;
        return 0;
    }
    list->data[list->length] = data;
    list->length++;    
    return 1;
}

//移除顺序表中的第index个元素
int remove(ArrayList *list,int index){
    if (index<0 || index>list->length) {
        cout << "索引下标越界!!!\n" << endl;
        return 0;
    }
    for (int i=index;i<=list->length;i++) {
        list->data[i]=list->data[i+1];
    }
    list->length--;
    return 1;
}

//在顺序表的第index位置插入元素
int insert(ArrayList *list,int index,char data){
    if (index<0||index>=list->length) {
        cout<<"索引下标越界!!!\n"<         return 0;
    }
    for (int i=list->length;i>index;i--){
        list->data[i+1]=list->data[i];
    }
    list->data[index]=data;
    list->length++;
    return 1;
}

//更改顺序表第index个的内容
int replace(ArrayList *list,int index,char data){
    if (index<0||index>list->length) {
        cout<<"索引下标越界!!!\n"<         return 0;
    }
    list->data[index]=data;
    return 1;
}

//获取顺序表的长度
int length(ArrayList *list){
    if (list=NULL){
        cout<<"未初始化顺序表!!!\n"<         return 0;
    }
    return list->length+1;
}

void main() {
    ArrayList list;

    init(&list);

    for (int i = 0; i <= 11; i++) {
        append(&list,'a'+i);
    }
    remove(&list,2);
    insert(&list,2,'c');
    replace(&list,2,'x');
    getAll(&list);
    system("pause");
}

你可能感兴趣的:(C语言,数据结构,线性表,顺序表)