📄 新建 文本文档 (2).txt
字号:
Status listinsert_sq(sqlist&L,int i,ElemType e)
If(i<1||i>L.length+1)return ERROR;
If(L.length>=L.listsize){
newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));
if(!newbase)exit(OVERFLOW);
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;
*q=e;
++L.length;
Return OK;
}
删除算法:在顺序表L中删除第i个元素,并用e返回其值。
Status ListDelete_sq(sqList&L,int i,ElemType &e){
If((i<1)||(i>L.length))return ERROR;
P=&(L.elem[i-1]);
E=*p;
q=L.elem+L.length-1;
for(++p;p<=q;++p)*(p-1)=*p;
--L.length;
Reture OK;
}
三. C语言程序实现
1. 运行环境:Microsoft visual c++6.0
2. c语言源程序
#include<stdio.h>
#include<stdlib.h>
#define MAX 10
#define TRUE 1
#define FALSE 0
int insertq(int list[],int length, int i,int e)
{
int j;
if((i<0)||(i>length+1))
{
printf("i is ilegal\n");
return(FALSE);
}
if(length>=MAX-1)
{
printf("list is full\n");
return(FALSE);
}
for(j=length+1;j>i;j--)
list[j]=list[j-1];
list[i]=e;
length++;
return(TRUE);
}
int deleteq(int list[],int length,int i)
{
int j;
if((i<0)||(i>length+1))
{
printf("delete error");
return(FALSE);
}
for(j=i+1;j<=length;j++)
list[j-1]=list[j];
length++;
return(TRUE);
}
void main()
{
int k=0,i,length;
int ch,e,c;
int list[MAX];
printf("INPUT THE LIST:");
while((ch=getchar())!='\n')
{
list[k]=ch;
k++;
}
length=k-1;
printf("请输入你的选择:\n1:插入\n2:删除\n");
scanf("%d",&c);
if(c==1){
printf("请输入插入的元素序列:");
scanf("%d",&i);
getchar();
printf("请输入插入的元素:");
e=getchar();
insertq(list,length,i,e);
for(i=0;i<=length+1;i++)
printf("%c",list[i]);
printf("\n");
}
else if(c==2){
printf("请输入删除的序列:");
scanf("%d",&i);
deleteq(list,length,i);
for(i=0;i<=length-1;i++)
printf("%c",list[i]);
printf("\n");
}
else exit(-1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -