首页 > 编程语言 > 详细

顺序表的实现代码(c++)

时间:2020-08-13 00:07:39      阅读:73      评论:0      收藏:0      [点我收藏+]
#define Maxsize 100 // 最大空间
typedef struct {
     int *elem; // 基地址;
     int length; // 顺序表的长度 
} SqList; 

//L加&表示引用类型参数,也叫取地址,使函数内部的改变跳出函数仍然有效
//L不加&内部改变,跳出函数后无效
bool initialize(SqList &L)//构造一个空的顺序表L
{
  L.elem = new int[Maxsize];  //为顺序表分配Maxsize个空间
  if(!L.elem){//存储分配失败     
    return false;
 }
  L.length = 0;
  return true; 
}

bool Createlist (SqList &L,int n/*数据的长度*/)//创建顺序表 
{
      if(n >= Maxsize) {
          cout<<"请输入小于"<<Maxsize<<"的数"<<endl;
        return false; 
      }    
      for(int i = 0; i < n;i++){
          cin>>L.elem[i];
          L.length++;
        }
        return true;
} 
bool GetElem(SqList L,int i,int &e){//查找顺序表里的值 if(i < 1 || i > L.length){ //判断i值是否合理,若不合理,返回false return false; } e = L.elem[i-1];//第i-1的单元存储着第i个数据 return true; }
bool ListInsert(SqList &L,int i,int &e)//插入删除顺序表位置中的值 { if(i < 1 || i > L.length || L.length == Maxsize ){ //判断i值是否合理,若不合理,返回false return false; } for(int j = L.length-1;j >= i - 1;j--){ L.elem[j+1] = L.elem[j]; } L.elem[i-1] = e; L.length ++; return true; }
bool ListDelete_Sq(SqList &L,int i) //删除顺序表位置中的值 { if((i < 1) || (i > L.length)) return false;//i值不合法 for(int j = i;j <= L.length-1;j++){ L.elem[j-1] = L.elem[j];//被删除元素之后的元素后移一位 } L.length--;//表长减少1 return true; }
void print(SqList L)//输出顺序表 { for(int j = 0;j <= L.length - 1;j++) cout<<L.elem[j]<<" "; }
void DestroyList(SqList &L)//释放存储空间 { if (L.elem) delete[]L.elem; }

 

顺序表的实现代码(c++)

原文:https://www.cnblogs.com/Penqiang/p/13493308.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!