7-1 递增有序顺序表的插入
分数 15
全屏浏览题目
切换布局
作者 daxuejsj单位 安阳工学院
实验目的:1、掌握线性表的基本知识 2、深入理解、掌握并灵活运用线性表。3、熟练掌握线性表的存储结构及主要运算的实现
已知顺序表L递增有序,将X插入到线性表的适当位置上,保证线性表有序。。
输入格式:
第1行输入顺序表长度,第2行输入递增有序的顺序表,第3行输入要插入的数据元素X。
输出格式:
对每一组输入,在一行中输出插入X后的递增的顺序表。
输入样例:
在这里给出一组输入。例如:
5
1 3 5 7 9
6
输出样例:
在这里给出相应的输出。例如:
1,3,5,6,7,9,
#include<bits/stdc++.h>
//#include<bits/stdc++.h>
using namespace std;
class Node
{
public:
Node()
{
}
int* Data;
int len;
void creat()
{
int N;
cin >> N;
this->Data = new int[N + 1];
this->len = N;
for (int i = 0; i < N; i++)
{
int num;
cin >> num;
Data[i] = num;
}
}
void insert(int n)
{
if (n < Data[0])
{
for (int i = len; i > 0; i--)
{
Data[i] = Data[i - 1];
}
Data[0] = n;
return;
}
if (n > Data[len - 1])
{
Data[len] = n;
return;
}
for (int i = 0; i < len; i++)
{
if (Data[i] > n)
{
for (int j = len; j > i; j--)
{
Data[j] = Data[j - 1];
}
Data[i] = n;
return;
}
}
}
void print()
{
for (int i = 0; i < len + 1; i++)
{
cout << Data[i] << ",";
}
}
};
int main()
{
Node* C = new Node();
C->creat();
int n;
cin >> n;
C->insert(n);
C->print();
return 0;
}