#2
qweiuy5662016-10-19 10:46
#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); } |
请分别使用流程图描述顺序存储的线性表插入与删除第i个元素的算法