数据结构 之 线性表的实现

版权声明:转载请注明出处哦。 https://blog.csdn.net/Dch19990825/article/details/83989880

 代码:

#include<algorithm>
#include<iostream>
#include<stdlib.h>
#define MAXSIZE 1100
using namespace std;
/*
线性表的实现
1.插入//ok
2.删除//ok
3.在尾部增加//ok
4.从尾部弹出//ok
5.是否为空//ok
6.查找//ok
7.根据下标获取线性表中的值//ok
*/
//线性表的数据结构
class LineTable{
  private:
    int date[MAXSIZE];
    int maxsize;//最大容量
    int size;//当前元素个数
  public:
    LineTable()
    {
        maxsize=MAXSIZE;
        size=0;
    }
    bool push_back(int val)
    {
        if(size==MAXSIZE)
            return 0;//插入失败
        date[size++]=val;
        return 1;
    }
    bool  pop_back(int &val)//从尾部弹出并返回该值
    {
        if(!size)
            return 0;
        val=date[--size];
        return 1;
    }
    bool empty()
    {
        if(!size)
            return 1;
        return 0;
    }
    bool find(int val,int &index)
    {
        for(int i=0;i<size;++i)
        {
            if(date[i]==val)
            {
                index=i;
                return 1;
            }
        }
        return 0;
    }
    bool erase(int sub,int &val)//
    {
        if(sub>=0&&sub<size)
        {
            for(int i=sub;i<size-1;++i)
                date[i]=date[i+1];
            --size;
            return 1;
        }
        return 0;
    }
    bool index(int sub,int &val)
    {
        if(sub<size&&sub>=0)
        {
            val=date[sub];
            return 1;
        }
        return 0;
    }
    bool insert(int index,int val)
    {
        if(size<MAXSIZE&&index>=0&&index<size)
        {
            for(int i=size-1;i>=index;--i)
                date[i+1]=date[i];
            return 1;
            ++size;
        }
        return 0;;
    }
    bool print()
    {
        for(int i=0;i<size;++i)
            printf("%d%c",date[i],i==size-1?'\n':' ');
        return 1;
    }
};
int main()
{
    LineTable dch;
    int val;
    dch.push_back(1);
    dch.push_back(2);
    dch.push_back(3);
    dch.print();
    dch.erase(1,val);
    dch.print();
}

改进:加异常处理可好

猜你喜欢

转载自blog.csdn.net/Dch19990825/article/details/83989880
今日推荐