在顺序表L中的最大元素处插入一个新元素
【问题描述】在顺序表L中的最大元素处插入一个新元素;
【输入形式】元素个数 元素 插入的元素
【输出形式】原来的表 插入后的表
【样例输入】
4
4 1 8 7
5
【样例输出】
4 1 8 7
4 1 5 8 7
//顺序表
#include<stdlib.h>
#include<stdio.h>
#include<iostream>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
#define MAXSIZE 100 //最大长度
typedef struct {
ElemType *elem; //指向数据元素的基地址
int length; //线性表的当前长度度
}SqList;
Status InitList_Sq(SqList &L){ //构造一个空的顺序表L
L.elem=new ElemType[MAXSIZE]; //为顺序表分配空间
if(!L.elem) exit(OVERFLOW); //存储分配失败
L.length=0; //空表长度为0
return OK;
}
int main()
{ SqList L;//先创建具有n个元素的顺序表
InitList_Sq(L);
ElemType e;
cin>>L.length;
for(int i=0;i<L.length;i++)
cin>>L.elem[i];
cin>>e;
ElemType max=L.elem[0];
int index=0;
for(int i=1;i<L.length;i++)
{
if(L.elem[i]>max){
max=L.elem[i];
index=i; }
}
for(int i=0;i<L.length;i++)
{
cout<<L.elem[i]<<" ";
}
printf("\n");
for(int i=L.length-1;i>=index;i--)
{
L.elem[i+1]=L.elem[i];
}
L.elem[index]=e;
L.length++;
for(int i=0;i<L.length;i++)
{
cout<<L.elem[i]<<" ";
}
return 0;
}