📄 sqlist.h
字号:
#include<iostream.h>
const ok=1;
const error=0;
const overlow=0;
const underlow=0;
const maxsize=50;
const LIST_INIT_SIZE=50;
const LISTINCREMENT=10;
typedef struct
{ int *elem;
int length;
int listsize;
int incrementsize;
}sqlist;
void InitList_sq(sqlist &L,int maxsize=LIST_INIT_SIZE,int incresize=LISTINCREMENT)
//按需动态分配一个存储区域,设其当前长度为0;初始化操作
{ L.elem=new int [maxsize];
L.length=0;
L.listsize=maxsize;
L.incrementsize=incresize;
}//InitList_Sq
void creat_sqlist(sqlist &L) //创建线形表
{ int i=1, x,j;
cout<<"请输入线形表的元素的个数:"<<endl;
cin>>j;
L.elem=new int [j];
cout<<"请输入线形表的元素:"<<endl;
for(i=1;i<=j;i++)
{ cin>>x;
L.elem[i]=x;}
L.length=j;
}
int listlength_sq(sqlist L) //求长度
{ return L.length;}
int getelem_sq(sqlist L,int i,int e) //取元素
{ if (i<1 || i>L.length) return error;
else
{e=L.elem[i];return e;}
}
int require_qianji(sqlist L,int i) //求前继
{
if ( i==1)
return error;
else
return L.elem[i-1];
} // LocateElem_Sq
int require_houji(sqlist L,int i) //求后继
{
if ( i==L.length)
return error;
if (i>=1 && i< L.length)
return L.elem[i+1];
} // LocateElem_Sq
int LocateElem_sq( sqlist L, int e) //查找
{ int i=1,*p; // i 的初值为第1个元素的位序
p=&L.elem[1]; // p 的初值为第1个元素的存储位置
while (i <= L.length && *p++ != e ) ++i;
if (i <= L.length) return i;
else cout<<"线形表中无此数"<<endl;
}// LocateElem_Sq
int Listinsert_sq(sqlist &L,int i,int e) //插入
{
if(i<1 || i>L.length+1) return error;
if(L.length>=maxsize) return overlow;
for (int j =L.length-1;j>i;--j)
L.elem[j+1]=L.elem[j]; //元素右移
L.elem[i-1]=e; //插入元素
++L.length;//表长加1
return ok;
}
int Listdelete_sq(sqlist &L,int i) //删除
{
if(i<1||i>L.length) return error;
if (L.length==0) return underlow; // 表空
for (int j=i;j<L.length; ++j)
//被删除元素之后的元素前移
L.elem[j-1]=L.elem[j];
--L.length; //表长减1
return ok;
}
void listkong_sq(sqlist L) //判定空表
{ if(L.length==0)
cout<<"此表为空";
else
cout<<"此表非空";}
void destroylist_sq(sqlist &L) //表置空
{ delete[]L.elem;
L.listsize=0;
L.length=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -