📄 2-2-1.txt
字号:
/*顺序表的基本运算实现*/
#include <stdio.h>
#include <malloc.h>
#define MAXSIZE 256
typedef int datatype;
typedef struct
{
datatype data[MAXSIZE];
int last;
}SeqList;
void menu();
SeqList * init_SeqList();
int Insert_SeqList(SeqList *L,int i,datatype x);
int Delete_SeqList(SeqList *L,int i);
int Location_SeqList(SeqList *L,datatype x);
void main()
{
int n,m=1;
SeqList *L;
/*clrscr();*/
while(m)
{
menu();
scanf("%d",&n);
switch(n)
{
case 1:L=init_SeqList();break;
case 2:{
int i,x,success;/*i为位置号,x为待插入数。*/
printf("please input i and x:\n");
scanf("%d,%d",&i,&x);
success=Insert_SeqList(L,i,x);
if(success==1)
{
for(i=0;i<=L->last;i++)
{
printf("%5d",L->data[i]);
}
}
break;
}
case 3:{
int i,success;/*i为位置号.*/
printf("please input i:\n");
scanf("%d",&i);
success=Delete_SeqList(L,i);
if(success==1)
{
for(i=0;i<=L->last;i++)
{
printf("%5d",L->data[i]);
}
}
break;
}
case 4:{
int x,success;
printf("please input a value:\n");
scanf("%d",&x);
success=Location_SeqList(L,x);
if(success==-1)
{
printf("Sorry,there isn't this value!\n");
}
else
{
printf("locate is:%d\nvalue=%5d",success+1,L->data[success]);
}
break;
}
case 5:m=0;
}
}
}
void menu()
{
/*clrscr();*/
printf("\n");
printf("\t\t1.initialization\n\n");
printf("\t\t2.insert\n\n");
printf("\t\t3.delete\n\n");
printf("\t\t4.location\n\n");
printf("\t\t5.exit\n\n");
printf("\n\n\n\tplease select:");
}
SeqList * init_SeqList()
{
SeqList *L;
L=(SeqList*)malloc(sizeof(SeqList));
L->last=-1;
return L;
}
int Insert_SeqList(SeqList *L,int i,datatype x)
{
int j;
if(L->last==MAXSIZE-1)
{
printf("table is full!");
return(-1);
}
if(i<1||i>(L->last+2))
{
printf("place is wrong!");
return(0);
}
for(j=L->last;j>=i-1;j--)
{
L->data[j+1]=L->data[j];
}
L->data[i-1]=x;
L->last++;
return(1);
}
int Delete_SeqList(SeqList *L,int i)
{
int j;
if(i<1||i>(L->last+1))
{
printf("this element don't exist!");
return(0);
}
for(j=i;j<=L->last;j++)
{
L->data[j-1]=L->data[j];
}
L->last--;
return(1);
}
int Location_SeqList(SeqList *L,datatype x)
{
int i=0;
while(i<=L->last&&L->data[i]!=x)
{
i++;
}
if(i>L->last)
{
return(-1);
}
else
{
return i;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -