zoukankan      html  css  js  c++  java
  • 线性表(顺序储存)

    #include<iostream> 
    using namespace std;
    #define Maxsize 100
    class LinearList{
    public:
        LinearList() { last = -1; } //空表时last为-1
        int data[Maxsize]; //申请表的空间
        int last; //末端元素的下标
        bool Isempty(LinearList *ptrl); //判断表是否为空
        bool Isfull(LinearList *ptrl); //判断表是否为空
        int length(LinearList *ptrl); //求表的长度
        int GetElem(int i, LinearList *ptrl); //表中第i个位置的值
        void Insert(int i, int x, LinearList *ptrl); //在第i个位置插入x
        void Delete(int i, LinearList *ptrl); //在第i个位置删除x
        int find(int x, LinearList *ptrl); //在表中查找x
    };
    int main(){
        int i, m;
        LinearList *ptrl = new LinearList;
        cout << "输入表的长度:" << endl;
        cin >> m;
        ptrl->last = m - 1;
        cout << "输入表的" << m << "个元素:" << endl;
        for (i = 0; i < ptrl->last + 1; i++)
            cin >> ptrl->data[i];
        //-----------------------------------------------------------
        int l = ptrl->length(ptrl);
        cout << "表的长度为:" << l << endl;
        //------------------------------------------------------------
        cout << "输入插入位置和元素;" << endl;
        cin >> i >> m;
        ptrl->Insert(i, m, ptrl);
        cout << "在第" << i << "个位置插入" << m << "后输出表:" << endl;
        for (i = 0; i < ptrl->last + 1; i++)
            cout << ptrl->data[i] << " ";
        cout << endl;
        //-------------------------------------------------------------
        cout << "输入删除的位置;" << endl;
        cin >> i;
        ptrl->Delete(i, ptrl);
        cout << "删除第" << i << "个元素,输出表:" << endl;
        for (i = 0; i < ptrl->last + 1; i++)
            cout << ptrl->data[i] << " ";
        cout << endl;
        //------------------------------------------------------------
        cout << "输入要查找的数:" << endl;
        cin >> m;
        i = ptrl->find(m, ptrl);
        cout << "在表中查找" << m << endl;
        if (i == -1)
            cout << "没有查找到" << m << endl;
        else
            cout << m << "的下标为" << i << endl;
        //------------------------------------------------------------
        return 0;
    }
    bool LinearList::Isempty(LinearList *ptrl){
        if (ptrl->last == -1)
            return false;
        return true;
    }
    bool LinearList::Isfull(LinearList *ptrl){
        if (ptrl->last == Maxsize - 1)
            return true;
        return false;
    }
    int LinearList::length(LinearList *ptrl){
        return ptrl->last + 1;
    }
    int LinearList::GetElem(int i, LinearList *ptrl){
        if (i<1 || i>ptrl->last + 1)
            cout << "输入位置不合理" << endl;
        else
            return ptrl->data[i - 1];
        return 0;
    }
    void LinearList::Insert(int i, int x, LinearList *ptrl){
        if (i<1 || i>ptrl->last + 1)
            cout << "插入位置不合理" << endl;
        else if (ptrl->last == Maxsize - 1)
            cout << "表已满,无法插入" << endl;
        else{
            for (int j = ptrl->last; j >= i - 1; j--)
                ptrl->data[j + 1] = ptrl->data[j]; //从后面开始挪动
            ptrl->data[i - 1] = x; //插入到第i个位置
            ptrl->last++; //元素加1
        }
    }
    void LinearList::Delete(int i, LinearList *ptrl){
        if (i<1 || i>ptrl->last + 1)
            cout << "删除位置不合理" << endl;
        else{
            for (int j = i - 1; j < ptrl->last; j++)
                ptrl->data[j] = ptrl->data[j + 1]; //从前面开始挪动
            ptrl->last--;
        }
    }
    int LinearList::find(int x, LinearList *ptrl){
        for (int i = 0; i < ptrl->last + 1; i++)
            if (x == ptrl->data[i])
                return i; //找到就返回下标值
        return -1; //否则返回-1
    }
  • 相关阅读:
    Sharepoint2013:日期控件报错
    Sharepoint2013:在页面上显示错误信息
    BeforeProperties/AfterProperties in Event Receivers
    一个ORM的实现(附源代码)
    DBHelper (支持事务与数据库变更)
    TypeError: <flask_script.commands.Command object at 0x00000201F36629E8>: option values must be strings
    Flask启动时报错:ValueError: urls must start with a leading slash
    {TypeError}__init__() takes from 1 to 2 positional arguments but 3 were given
    pycharm2019激活方法(有效期到2100年1月1日)
    Warning | 3719 | 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
  • 原文地址:https://www.cnblogs.com/td15980891505/p/4376343.html
Copyright © 2011-2022 走看看