线性表的建立及运算

1、建立一个顺序表,输入n个元素并输出;
2、查找线性表中的最大元素并输出;
3、在线性表的第i个元素前插入一个正整数x;
4、删除线性表中的第j个元素;
5、将线性表中的元素按升序排列;
6、将线性表中的元素就地逆序(只允许用一个暂存单元);
#include
#include
using namespace std;
#define m 100
int main()
{
void print(int n, int
s);
void searchmax(int n, ints);
void insert(int n, int
s);
void del(int n, ints);
void sorth(int n, int
s);
void nosort(int n, ints);
int n, i;
int s[m];
cin >> n;
for (i = 0; i <n; i++)
cin >> s[i];
print(n, s);
searchmax(n, s);
insert(n, s);
del(n, s);
sorth(n, s);
nosort(n, s);
}
void print(int n, int
s)
{
int i;
printf("(1).输出n个元素:");
for (i = 0; i < n; i++)
cout << s[i] << " “;
cout << endl;
}
void searchmax(int n, ints)
{
cout << “(2).线性表中的最大元素为:”;
int temp, max = 0, i;
for (i = 0; i < n; i++)
if (s[i] > max)
max = s[i];
cout << max << endl; #include
#include
using namespace std;
#define m 100
int main()
{
void print(int n, int
s);
void searchmax(int n, ints);
void insert(int n, int
s);
void del(int n, ints);
void sorth(int n, int
s);
void nosort(int n, ints);
int n, i;
int s[m];
cin >> n;
for (i = 0; i <n; i++)
cin >> s[i];
print(n, s);
searchmax(n, s);
insert(n, s);
del(n, s);
sorth(n, s);
nosort(n, s);
}
void print(int n, int
s)
{
int i;
printf(”(1).输出n个元素:");
for (i = 0; i < n; i++)
cout << s[i] << " ";
cout << endl;
}
void searchmax(int n, ints)
{
cout << “(2).线性表中的最大元素为:”;
int temp, max = 0, i;
for (i = 0; i < n; i++)
if (s[i] > max)
max = s[i];
cout << max << endl;
}
void insert(int n, int
s)
{
int i, k, j, n1;
int b[m];
for (i = 0; i < n; i++)
b[i] = s[i];
n1 = n;
cout << “(3).在线性表第i个元素前插入一个正整数k:”;
cin >> i >> k;
cout << " ";
if (i<1 || i>n)
printf(“没有找到位置可以插入。”);
else
for (j = 0; j < n; j++)
{
if (j + 1 == i)
{
for (; n >= i - 1; n–)
b[n + 1] = b[n];
b[i - 1] = k;
for (j = 0; j <= n1; j++)
cout << b[j] << " ";
cout << endl;
break;
}
}
}
void del(int n, ints)
{
int j, i;
int b[m];
for (i = 0; i < n; i++)
b[i] = s[i];
cout << “(4.)删除线性表中的第j个元素:”;
cin >> j;
cout << " ";
for (; j < n; j++)
b[j - 1] = b[j];
for (j = 0; j < n - 1; j++)
cout << b[j] << " ";
cout << endl;
}
void sorth(int n, int
s)
{
int j, i, k, temp, t;
int b[m];
for (i = 0; i < n; i++)
b[i] = s[i];
for (j = 0; j < n; j++)
{t = j;
for (k = j + 1; k < n; k++)
if (b[k] > b[t])
t = k;
temp = b[j]; b[j] = b[t]; b[t] = temp;
}
cout << “(5)排序后的结果为:”;
for (j = 0; j < n; j++)
cout << b[j] << " “;
cout << endl;
}
void nosort(int n, int*s)
{
cout << “(6)线性表的逆序结果为:”;
int i, temp, mid,k2;
k2 = n;
mid =n/2;
n = n - 1;
for(i=0;i<mid;i++,n–)
{
temp = s[i];
s[i] = s[n];
s[n] = temp;
}
for (i = 0; i < k2; i++)
cout << s[i]<<” ";
}

}
void insert(int n, ints)
{
int i, k, j, n1;
int b[m];
for (i = 0; i < n; i++)
b[i] = s[i];
n1 = n;
cout << “(3).在线性表第i个元素前插入一个正整数k:”;
cin >> i >> k;
cout << " ";
if (i<1 || i>n)
printf(“没有找到位置可以插入。”);
else
for (j = 0; j < n; j++)
{
if (j + 1 == i)
{
for (; n >= i - 1; n–)
b[n + 1] = b[n];
b[i - 1] = k;
for (j = 0; j <= n1; j++)
cout << b[j] << " ";
cout << endl;
break;
}
}
}
void del(int n, int
s)
{
int j, i;
int b[m];
for (i = 0; i < n; i++)
b[i] = s[i];
cout << “(4.)删除线性表中的第j个元素:”;
cin >> j;
cout << " ";
for (; j < n; j++)
b[j - 1] = b[j];
for (j = 0; j < n - 1; j++)
cout << b[j] << " “;
cout << endl;
}
void sorth(int n, ints)
{
int j, i, k, temp, t;
int b[m];
for (i = 0; i < n; i++)
b[i] = s[i];
for (j = 0; j < n; j++)
{t = j;
for (k = j + 1; k < n; k++)
if (b[k] > b[t])
t = k;
temp = b[j]; b[j] = b[t]; b[t] = temp;
}
cout << “(5)排序后的结果为:”;
for (j = 0; j < n; j++)
cout << b[j] << " ";
cout << endl;
}
void nosort(int n, int
s)
{
cout << “(6)线性表的逆序结果为:”;
int i, temp, mid,k2;
k2 = n;
mid =n/2;
n = n - 1;
for(i=0;i<mid;i++,n–)
{
temp = s[i];
s[i] = s[n];
s[n] = temp;
}
for (i = 0; i < k2; i++)
cout << s[i]<<” ";
}

永远热泪盈眶。
原文地址:https://www.cnblogs.com/2021WGF/p/14253265.html