对线性表的基本操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//函数printout():输出顺序表L的所有元素
//**************************************************************************
voidprintout(SeqList*L)
{inti;
for(i=0;i<=L->last;i++)
if((L->last)==MAXSIZE) return 0;
for(j=L->last;j>=i-1;j--)
L->data[j+1]=L->data[j];
L->data[i-1]=x;
++L->last;
return1;
}
//**************************************************************************
//函数delList():删除线性表L的第i个元素
//输入参数:L--线性表;i--被删元素的位置(从1开始计数)
//**************************************************************************
intdelList(SeqList*L,dataTypex,inti,intj)
scanf("%c", &cmd);
switch(cmd)
{
case'i':
case'I':
fflush(stdin);
printf("输入要插入的数据:");scanf("%d", &x);
printf("输入要插入的位置:");scanf("%d", &i);
insList( L, x,i,j); //调用insList(),完成插入数据
{if((i<1)||(i>L->last+1)) return 0;
x=L->data[i-1];
for(j=i;j<=L->last;j++)
L->data[j-1]=L->dataபைடு நூலகம்j];
--L->last;
return1;
//在此写上删除操作的程序段
}
//**************************************************************************
scanf("%d", &n);
printf("请输入%d个整数(用空格分开):", n);
for(i=0;i<n;i++) //输入n个整数存放到线性表L的data数组中
scanf("%d",&(L->data[i]));
L->last=n-1;
printf("\n");
}
//**************************************************************************
createList(L); //建立顺序表
printout(L); //输出顺序表
do{
printf("i, I………插入\n");
printf("d, D………删除\n");
printf("q, Q………退出\n");
printf("输入功能字母(i, I, d, D, q, Q)之一:");
fflush(stdin); //清除键盘缓冲区
printout(L);
printf("\n");//输出线性表L的所有元素
break;
case 'd':
case'D':
fflush(stdin);
printf("输入要删除元素的位置:");scanf("%d", &i);
delList(L,x,i,j); //调用delList(),删除L中第i个元素
#include "stdio.h"
#include "malloc.h"
#include "SequenList.h"
#define OK 1
#define ERROR 0
intinsList(SeqList*L,dataTypex,inti,intj)
{
//在此写上插入操作的程序段
if(i<1||i>L->last+1)return 0;
printout(L); //输出线性表L的所有元素
break;
}
}while((cmd!='q')&&(cmd!='Q'));
}
//函数createList():建立顺序表,其元素为整数
//**************************************************************************
voidcreateList(SeqList*L)
{
intn,i;
printf("请输入数据的个数:");
printf("L->data[%d]=%d ",i,(L->data[i]));
//在此写上程序段,输出L中的data[0]到data[last]之间的数组元素
printf("\n");
}
//主函数
voidmain()
{
SeqList*L;
charcmd;
inti,x,j;
L=(SeqList*)malloc(sizeof(SeqList)); //初始化顺序表的指针
相关文档
最新文档