线性表的顺序存储结构的C++类实现

线性表的6个基本的运算:
1. 初始化
2. 求表长度
3. 按序号查元素
4. 按值查询
5. 插入元素
6. 删除元素

seqList.h

#pragma once
#define MAXLEN 100      //最多存放MAXLEN个元素
class seqList           //定义顺序表类
{
public:
    seqList(int a);                             //构造函数
    int initialList(seqList *L);                //线性表的初始化
    int listLength(seqList L);                  //求线性表的长度
    int getElement(seqList L, int i, int *x);   //按序号取元素
    int listLocate(seqList L, int x);           //查找元素
    int listInsert(seqList *L, int x, int i);   //插入元素
    int listDelete(seqList *L, int x, int i);   //删除元素
    int data[MAXLEN];                           //定义存储表中元素的数组
    int listLen;                                //数组长度
    ~seqList();

};

seqList.cpp

#include "seqList.h"

seqList::seqList(int a)
{
    listLen = a;
}

int seqList::initialList(seqList *L) 
{
    L->listLen = 0;   //初始化线性表,即建立空表
}
int seqList::listLength(seqList L) 
{
    return L.listLen;
}

int seqList::getElement(seqList L, int i, int * x)
{
    if (i<1 || i>L.listLen)
        return 0;                    
    else
    {
        (*x) = L.data[i - 1];
        return 1;
    }
}

int seqList::listLocate(seqList L, int x)
{
    for (int i = 0; i < L.listLen; i++)
        if (L.data[i] == x)
            return i + 1;           //元素x在L中,返回此值
    return 0;                       //x不再L中,返回0
}

int seqList::listInsert(seqList *L, int x, int i)
{
    if (L->listLen == MAXLEN)
        return 0;                             //表满,返回0
    else if (i<1 || i>L->listLen + 1)
        return 1;                             //序号i超出范围,返回1
    else
    {
        for (int j = L->listLen - 1; j >= i; j--)
            L->data[j + 1] = L->data[j];
        L->data[i - 1] = x;
        L->listLen++;
        return 2;                              //成功插入,返回2
    }
}

int seqList::listDelete(seqList * L, int x, int i)
{
    if (L->listLen <= 0)
        return 0;       //空表,返回0
    else if (i<1 || i>L->listLen)
        return 2;       //删除的的序号不再范围内,返回1
    else
    {
        for (int j = i; j < L->listLen; j++)
            L->data[j - 1] = data[j];
        L->listLen--;
        return 2;      //成功删除,返回2
    }
}


seqList::~seqList()
{
}

你可能感兴趣的:(c++,数据结构)