数据结构之c++语言实现线性表的静态存储

静态存储变量通常是在变量定义时就分定存储单元并一直保持不变, 直至整个程序结束。

动态存储变量是在程序执行过程中,使用它时才分配存储单元, 使用完毕立即释放。


#include <iostream>
#define MAXSIZE 100
using namespace std;
//线性表内的元素都为int类型为例
typedef struct{
int a[MAXSIZE];
int length;
}SqList;
void initList(SqList &L);
int insertElem(SqList &L,int p,int e);
int deleteElem(SqList &L,int p);
int getElem(SqList L,int p);
int traversal(SqList L);
int getLength(SqList L);
int main()
{
     SqList L;
     L.length=5;
     for(int i=0;i<L.length;i++){
      L.a[i]=i+1;
      }
     traversal(L);
     cout<<"线性表长度为:"<<getLength(L)<<endl;
     insertElem(L,3,999);
     cout<<"在第三个位置插入数字999后:"<<endl;
     traversal(L);
     deleteElem(L,2);
     cout<<"删除第二个元素后:"<<endl;
     traversal(L);

  return 0;
}
//初始化线性表
void initList(SqList &L){
L.length=0;
}
//插入
int insertElem(SqList &L,int p,int e){
if(p<0||p>L.length||L.length==MAXSIZE)return 0;
for(int i=L.length-1;i>=p-1;i--){
    L.a[i+1]=L.a[i];
}
L.a[p-1]=e;
L.length++;
return 1;
}
//删除
int deleteElem(SqList &L,int p){
if(p<0||p>L.length)return 0;
for(int i=p;i<L.length;i++){

    L.a[i-1]=L.a[i];

}
L.length--;
return 1;
}
//获取线性表内元素
int getElem(SqList L,int p){
return L.a[p];
}
//遍历线性表
int traversal(SqList L){
    cout<<"遍历线性表得:  ";
for(int i=0;i<L.length;i++){
   cout<<getElem(L,i)<<"  ";
}
cout<<endl;
return 1;
}
//获取线性表长度
int getLength(SqList L){
return L.length;
}

猜你喜欢

转载自blog.csdn.net/miss_dairongrong/article/details/80759630