#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
//#define maxsize 100
//定义顺序表
typedef struct{
int data[100];
int length;
}Sqlist;
//初始化顺序表
void initList(Sqlist &L){
L.length=0;
}
//建立顺序表
void Creat(Sqlist &L){
int a,b,i=0;
printf("请输入结点数:\n");
scanf_s("%d",&a);
printf("请输入各个结点的值:\n",i);
for (i=0;i!=a;++i){
scanf_s("%d",&b);
L.data[i]=b;
++L.length;
}
}
//增
void addList(Sqlist &L,int p,int e){
if(p<1||p>L.length){
exit(1);
printf("此位置不可插入!\n");
}
for(int i=L.length;i>=p;i--){
L.data[i+1]=L.data[i];
}
L.data[p]=e;
++L.length;
}
//删除
void delList(Sqlist &L,int p){
if(p<1||p>L.length){
exit(1);
printf("此位置不合法!\n");
}
for(int i=p-1;i<L.length;i++ ){
L.data[i]=L.data[i+1];
int e=L.data[p-1];
}
--L.length;
}
//查找1
int selList(Sqlist L,int p){
if(p<1||p>L.length){
exit(1);
printf("无此位置!\n");
}
return L.data[p-1];
}
//查找2
void LocList(Sqlist L,int e){
for(int i=0;i<L.length;i++){
if(L.data[i]==e)
printf(" 该数在表中第%d位置",i+1);
}
}
//修改
void edList(Sqlist &L,int p,int e){
int temp;
printf("将表第%d个数变为%d",p,e);
temp=L.data[p-1];
L.data[p-1]=e;
}
//显示顺序表
void display(Sqlist L){
for(int i=0;i<L.length;i++){
printf("%d,",L.data[i]);
}
}
int main(int argc, char *argv[])
{
int p,e;
Sqlist L;
initList(L);
Creat(L);
//插入
printf("请输入要插入的位置:\n");
scanf_s("%d",&p);
printf("请输入要插入值:\n");
scanf_s("%d",&e);
addList(L, p, e);
//删除
printf("请输入要删除的位置:\n");
scanf_s("%d",&p);
delList(L,p);
//查找1
printf("请输入要查找的位置:\n");
scanf_s("%d",&p);
e=selList(L,p);
printf("该位置元素为%d \n",e);
//查找2
printf("请输入要查找的元素:\n");
scanf_s("%d",&e);
LocList(L,e);
//修改
printf("请输入要修改元素位置:\n");
scanf_s("%d",&p);
printf("替换为:\n");
scanf_s("%d",&e);
edList(L,p,e);
printf("顺序表修改后为:\n");
display(L);
system("PAUSE");
}