#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
typedef char Status; //换名
#define List_Size 10
typedef struct //换名
{
char *elem; //成员指针
int length; //长度
int listsize; //现有的长度
}SqList;
SqList C_NullList() //初始化顺序表
//void C_NullList()
{
SqList L;
L.elem=(Status *)malloc(List_Size *sizeof(Status)); //创建类型的Status *(还是指针),长度为List_Size的顺序表,顺序表里元素的类型也为Status
if(!L.elem)
exit(ERROR);
L.length=0;
L.listsize=List_Size;
return L;
}
void Create_Sq(SqList &L) //给顺序表赋入元素
{
int ch;
printf("请输入元素:");
ch=getchar();
while(ch!='#')
{
L.elem[L.length++]=ch;
/*if(L.length>List_Size)
{
printf("");
exit(ERROR);
}*/
ch=getchar();
//scanf("%c",&ch);
}
L.length--;
}
void Display_Sq(SqList &L) //显示顺序表里的元素
{
if(L.elem==NULL)
{
printf("L 顺序表为空!");
exit(ERROR);
}
printf("请输出元素:");
for(int i=1;i<=L.length;i++)
{
if(i!=L.length)
printf("%c->",L.elem[i]);
else
{
putchar(L.elem[i]);
putchar('\n');
//printf("%c\n",L.elem[i]);
}
}
}
void Insert_Sq(SqList &L) //插入元素
{
int n;
Status *p,*q;
Status ch;
if(!L.elem)
{
printf("不存在 L 顺序表!");
exit(ERROR);
}
printf("请输入插入的位置和元素:");
scanf("%d %c",&n,&ch);
if(n<=L.length)
{
q=&(L.elem[n]);
for(p=&(L.elem[L.length]);p>=q;p--)
*(p+1)=*p;
*q=ch;
L.length++;
}
else
printf("你输入的位置大于顺序表的长度!\n");
}
void Delete_Sq(SqList &L) //删除元素
{
int n;
Status *p,*q;
printf("请输入删除的位置:");
scanf("%d",&n);
if(n<=L.length)
{
q=&(L.elem[L.length]);
p=&(L.elem[n]);
printf("输出删除的元素:%c\n",*p);
while(p<=q)
{
*p=*(p+1);
p++;
}
L.length--;
}
}
void JieMian_Sq()
{
SqList L;
int n,m=0;
L=C_NullList();
printf(" ******************************顺序表的操作*******************************\n\n");
printf(" 1.创建顺序表 2.输出顺序表 3.插入元素 4.删除元素 \n\n");
printf(" 5.退出 \n\n");
printf(" *************************************************************************\n\n");
while(m==0)
{
printf("输入操作序号:");
scanf("%d",&n);
switch(n)
{
case 1:Create_Sq(L);break;
case 2:Display_Sq(L);break;
case 3:Insert_Sq(L);break;
case 4:Delete_Sq(L);break;
case 5:m++;printf(" 退出! \n");break;
default:printf("输入错误!");break;
}
}
}
int main()
{
JieMian_Sq();
return OK;
}
转载于:https://www.cnblogs.com/hupolinglong/articles/shunxubiao.html