zoukankan      html  css  js  c++  java
  • 数据结构 之 线性表的实现(实验1)

     代码:

    #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?'
    ':' ');
            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();
    }
    

    改进:加异常处理可好

  • 相关阅读:
    台州 OJ 3847 Mowing the Lawn 线性DP 单调队列
    洛谷 OJ P1417 烹调方案 01背包
    快速幂取模
    台州 OJ 2649 More is better 并查集
    UVa 1640
    UVa 11971
    UVa 10900
    UVa 11346
    UVa 10288
    UVa 1639
  • 原文地址:https://www.cnblogs.com/dchnzlh/p/10427301.html
Copyright © 2011-2022 走看看