📄 线性表的顺序表示.cpp
字号:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status; //status 为函数类型
typedef char ElemType; //ElmeType为数据元素类型
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10 //定义空间
typedef struct{
ElemType *elem; //存储空间基址
int length;
int listsize; //容量
} SqList;
Status InitList_Sq(SqList &L){
L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem) exit (OVERFLOW);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
} //构造空线性表
Status ListInsert_Sq(SqList &L,int i,ElemType e){
if (i<1||i>L.length+1)return ERROR;
if(L.length>=L.listsize){
ElemType *newbase=(ElemType *)realloc(L.elem,
(L.listsize+LISTINCREMENT)*sizeof(ElemType));
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
ElemType *q;
ElemType *p;
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]);p>=q;--p)
*(p+1)=*p;
*q=e;
++L.length;
return OK;
} //在线性表中插入新的元素
int LocateElem_Sq(SqList L,ElemType e)
{
int i=0,j=0;
ElemType *p;
p=L.elem;
while(i<L.length)
{
if(e==*p)
{j=i;break;}
else
p++;i++;
}
if(i<=L.length) return j;
else return 0;
} // 在线性表中查找元素
Status ListDelete_Sq(SqList &L,int i,ElemType &e)
{
ElemType *p=&L.elem[i-1],*q;
if((i<1)||(i>L.length)) return ERROR;
e=*p;
q=L.elem+L.length-1;
for(++p;p<=q;++p)
*(p-1)=*p;
--L.length;
return OK;
}//删除元素
int main()
{
Status i=1,j,del;
ElemType elem,ch=' ',e;
SqList l;
InitList_Sq(l);
printf("\n首先创建了一个列表L:\n");
printf("\n-------------------------\n \n");
printf("请输入一串字符,以空格结束!\n");
printf("\n-------------------------\n \n");
do
{
elem=getchar();
if(elem==ch)
break;
ListInsert_Sq(l,i, elem);
i++;
}while(1);
printf("请输入要访问的字符:\n");
getchar();
scanf("%c",&e);
j=LocateElem_Sq(l,e);
printf("你要访问的字符的位置是:%d",j+1);
printf("\n------------------------\n");
printf("请输入你要删除的字符的位置:");
scanf("%d",&del);
ListDelete_Sq(l,del,e);
printf("\n你删除的字符是%c",e);
printf("\n");
system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -