数据结构笔记(一) 线性表(C语言描述)

数据结构(一) 线性表

顺序表

存储结构

#define ElemType int
#define MAXSIZE 100
typedef struct{
    ElemType *elem;//初始地址
    int length;//长度
}SqList;

初始化

//初始化
void init(SqList& L){
   
    L.elem = new ElemType[MAXSIZE];
    if(!L.elem){
   
        cout << "内存分配失败" << endl;
        return;
    }
    L.length = 0;
}

创建长度为n的顺序表

void createList(SqList &L, int n){
   
    if(n <= 0 || n > MAXSIZE){
   
        cout << "n值不合法" << endl;
        return;
    }
    L.length = 0;
     cout << "请输入线性表" << n << "个数据:";
    for(int i = 0; i < n; i++){
   
        cin >> L.elem[i];
        L.length++;
    }
}

获取第i个元素

//获取第i个元素
ElemType getElem(SqList L, int i){
   
    if(i < 1 || i > L.length){
   
        cout << "输入的下标有误" << endl;
        return 0;
    }
    return L.elem[i - 1];
}

查找某个元素

//查找某个元素,找到返回位置,找不到返回0
int locateElem(SqList L, ElemType e){
   
    for(int i = 0; i < L.length; i++){
   
        if(e == L.elem[i]){
   
            return i + 1;
        }
    }
    return 0;
}

在第i个元素插入元素

//在第i个位置插入元素e
void ListInsert(SqList &L, int i, ElemType e){
   
    if((i < 1) || (i > L.length + 1)){
   
        cout << "i值不合法" << endl;
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值