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

来源:互联网 发布:淘宝 唱片 编辑:程序博客网 时间:2024/06/05 05:04
//C语言--数据结构--线性表  顺序表 线性表的顺序存储结构
//其实顺序表就相当于一个数组

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <malloc.h>
#include <windows.h>

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"<<endl;
        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"<<endl;
        return 0;
    }
    list->data[index]=data;
    return 1;
}

//获取顺序表的长度
int length(ArrayList *list){
    if (list=NULL){
        cout<<"未初始化顺序表!!!\n"<<endl;
        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");
}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 笑起来卧蚕很大怎么办 卧蚕眼袋都有怎么办 3个月宝宝眉毛淡怎么办 1个月宝宝眉毛淡怎么办 我眉毛很淡又少怎么办 脸两侧颧骨太宽怎么办 脸的两边太宽怎么办 脸宽怎么办可以瘦下来 白眼球红了一块怎么办 三国志13坏档了怎么办 权倾三国的战车怎么办 勾线笔笔头干了怎么办 水彩笔没有水了怎么办 水彩笔不出水了怎么办 去眼袋后有皱纹怎么办 一笑眼角有皱纹怎么办 打了玻尿酸淤青怎么办 眉头两边长痘痘怎么办 下巴和额头长痘怎么办 额头上一直长痘怎么办 额头上的闭合性粉刺怎么办 脸上有多长痘痘怎么办 雄性激素过多长痘痘怎么办 额头上反复长痘怎么办 汽车脱审一个月怎么办 山药弄到手上痒怎么办 山药弄到皮肤痒怎么办 喉咙痒咳嗽痰多怎么办 老赖2年后仍不还怎么办 老赖欠款不还怎么办 酒店丢了房卡怎么办 微信上买狗被骗怎么办 洋码头不给退货怎么办 代购被海关查了怎么办 洋码头被投诉了怎么办 安利网上办卡怎么办 美图m6拍照模糊怎么办 买的发箍戴着紧怎么办 带发卡老是滑掉怎么办 发卡戴不住总滑怎么办 皮肤皮肤干燥起皮怎么办