静态存储变量通常是在变量定义时就分定存储单元并一直保持不变, 直至整个程序结束。
动态存储变量是在程序执行过程中,使用它时才分配存储单元, 使用完毕立即释放。
#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; }