问一个线性表基础题,自己确实画不出来
请分别使用流程图描述顺序存储的线性表插入与删除第i个元素的算法
#include<stdio.h>
#include<iostream>
#define MAXSIZE 20
#define ElemType int
using namespace std;
typedef struct node{
ElemType data[MAXSIZE];
int len;
}Slink;
void creat(Slink &L);//顺序表赋值
void shuchu(Slink &L); //输出顺序表中的元素的值
void insert(Slink &L) ; // 在顺序表第i个位置插入元素x
void shanchu(Slink &L);// 删除顺序表中第i个位置的元素
main()
{
Slink L;
L.len=0;
creat(L);
shuchu(L);
insert(L);
shanchu(L);
}
void creat(Slink &L) //顺序表赋值
{
int i,n;
cout<<"您想填入元素的个数是"; cin>>n;
for(i=0;i<n;i++)
{ cout<<"请输入第"<<i+1<<"个元素: ";
cin>>L.data[i]; L.len++; cout<<endl;}
cout<<"顺序表赋值完成"<<endl;
}
void shuchu(Slink &L)
{
int i;
cout<<"现在顺序表中的元素是";
for(i=0;i<L.len;i++)
cout<<" "<<L.data[i] ;
cout<<endl;
}
void insert(Slink &L) // 在长度为n的顺序表第i个位置插入元素x
{
int i,x;
cout<<"在元素个数为"<<L.len<<"的顺序表第 i 个位置插入元素 x"<<endl<<"请输入 i 和 x 的值:";
cin>>i>>x;
int j;j=L.len;
if(i>L.len||i<=0) cout<<"插入元素失败"<<endl;
else
{
for(;i<=L.len;L.len--)
{
L.data[L.len]=L.data[L.len-1];
}
L.data[i-1]=x;
}L.len=j+1;
shuchu(L);
}
void shanchu(Slink &L)
{
int i;
cout<<"在元素个数为"<<L.len<<"的顺序表第 i 个位置删除元素"<<endl<<"请输入 i 的值:";cin>>i;
for(;i<L.len;i++)
L.data[i-1]=L.data[i];L.len--;
shuchu(L);
}