利用顺序表:改善满天星空图效率

3.添加元素信息———————————————————

#include<iostream>

using namespace std;

#define MAX_SIZE 100

 

typedef struct {

   int *elems;//顺序表的基地址

   int length;//顺序表的长度(元素个数)

   int size;//顺序表的总长度

}SqList;//别名可以直接用来定义变量

 

//1.返回值用bool类型来判断是否成功

bool initList(SqList &L)//引用来接收实参,构造一个空的顺序表L

{

    L.elems=new int[MAX_SIZE];//为顺序表分配MAX_SIZE个int类型的空间

    //防御性编程:内存不足时,出现分配不了内存的情况,返回false

    if(!L.elems) return false;//空间分配失败

    L.length=0; //存储长度置为0

    L.size=MAX_SIZE; //顺序表总的空间大小

    return true;//初始化成功

}

 

//2.打印列表信息:输出顺序表中最大空间数,表中元素个数以及元素信息

void listPrint(Sqlist &L){

    cout<<"顺序表的存储空间size:"<<L.size<<",已保存元素个数length:"<<L.length<<endl;

    for(i=0;i<=L.length-1;i++) //输出具体元素信息

    {

        cout<<L.elems[i]<<" ";

    }

    cout<<endl;

}

 

//3.添加元素(列表尾部添加)

bool listAppend(SqList &L,int e)

{ //判断存储空间是否已满

  // 已保存元素个数=总的空间大小

  if(L.length==L.size) return false;

  L.elems[L.length]=e; //length为数组下标,把元素e赋值它

  L.length++; //下标自动后移一位,指向下一个地址(表长增1)

  return true;

}

 

int main(){

   SqList list; //定义一个列表

   int e;

   cout<<"顺序表的初始化……"<<endl;

 

   //1.初始化列表 定义一个接口信息

   if(initList(list)){ //调用函数传参

     cout<<"顺序表初始化成功!";

   }

 

   //2.打印列表信息

   listPrint(list);

 

   //3.添加元素

   int count=0;

   cout<<"请输入要添加的元素个数:";

   cin>>count;

   for(int i=0;i<count;i++){

      cout<<"\n请输入要添加的元素e:";

      cin>>e;

      if(listAppend(list,e)){

         cout<<"添加成功!"<<endl;

      }else{

         cout<<"添加失败!"<<endl;

      }

   }

   

   //打印添加元素后(总的存储空间大小,已保存元素长度)

   listPrint(list);

   

   system("pause");

   return 0;

}

c55fe8e96c1c4ae4abea6a5aafe5f9c7.jpg

 

951db601f17b41f392431309d235420f.jpg

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁静致远+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值