zoukankan      html  css  js  c++  java
  • c++数据结构之顺序表

    2007-11-22 21:08

    //SeqList.h

    class SeqList
    {
    protected:
    DataType *list;
    int maxsize;
    int size;
    public:
    SeqList(int max=0);
    ~SeqList(void);
    int Size(void)const;
    void Insert(int i,const DataType& item);
    DataType Delete(const int i);
    DataType GetData(int i)const;


    };
    //构造函数
    SeqList::SeqList(int max)
    {

    maxsize = max;
    size = 0;
    list = new DataType[maxsize];
    }
    //析构函数
    SeqList::~SeqList(void)
    {
    delete []list;
    }
    //插入
    void SeqList::Insert(int i,const DataType& item)
    {
    if(size==maxsize)
    {
       cout<<"空间已满,无法插入!"<<endl;
    exit(0);
    }
    if(i<0||i>size)
    {
       cout<<"输入参数错误!"<<endl;
       exit(0);
    }
    for(int j=size;j>i;j--)
       list[j] = list[j-1];

    list[i] = item;
    size++;
    }
    //取元素
    DataType SeqList::GetData(int i)const
    {
    if(i<0||i>size)
    {
       cout<<"该值不存在!"<<endl;
    }
    return list[i];
    }
    //删除
    DataType SeqList::Delete(const int i)
    {
    if(i<0||i>size-1)
       cout<<"要删除的值不存在!"<<endl;
    if(size==0)
       cout<<"无可删除的值了"<<endl;
    DataType x=list[i];
    for(int j=i;j<size-1;j++)
    {
       list[j] = list[j+1];
    }
    size--;
    return x;
    }
    //反回大小
    int SeqList::Size(void)const
    {
    return size;
    }

    //list.cpp

    //测试函数,一次输入1-10,删除5,最后输出结果
    #include<iostream>
    using namespace std;
    typedef int DataType;
    #include "SeqList.h"

    int main()
    {
    SeqList myList(100);
    for(int n=0;n<10;n++)
       myList.Insert(n,n+1);

    myList.Delete(4);

    for(int i=0;i<myList.Size();i++)
       cout<<myList.GetData(i)<<endl;

    return 0;
    }


    作者:玄魂
    出处:http://www.cnblogs.com/xuanhun/
    原文链接:http://www.cnblogs.com/xuanhun/ 更多内容,请访问我的个人站点 对编程,安全感兴趣的,加qq群:hacking-1群:303242737,hacking-2群:147098303,nw.js,electron交流群 313717550。
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    关注我:关注玄魂的微信公众号

  • 相关阅读:
    qemu进程页表和EPT的同步问题
    Linux进程虚拟地址空间管理2
    qemu-kvm内存虚拟化1
    LInux进程虚拟地址空间的管理
    Linux下的文件系统2
    LInux中的文件系统1
    Linux IPC之管道通信
    操作系统中的特权级检查
    Linux下的信号机制
    进程的挂起、阻塞和睡眠
  • 原文地址:https://www.cnblogs.com/xuanhun/p/1662414.html
Copyright © 2011-2022 走看看