######运用了引用请在C++环境中运行
#include<stdio.h>
#include<stdlib.h>
#define ListSize 100
typedef int DataType;
typedef struct {
DataType data[ListSize];
int length;
}SeqList;
//插入
void InsertList(SeqList& L, int i, DataType x) {
int j;
if (i<1 || i>L.length) {
printf("positon error");
return;
}
if (L.length>=ListSize) {
printf("overflow");
return;
}
for (j = L.length - 1; j >= i-1;j--) {
L.data[j + 1] = L.data[j];
}
L.data[i-1] =x;
L.length++;
}
//删除
DataType DeleteList(SeqList& L, int i) {
if (i<1 || i>L.length) {
printf("positon error");
exit(0);
}
DataType x = L.data[i - 1];
for (int j = i - 1; j < L.length - 1;j++) {
L.data[j] = L.data[j+1];
}
L.length--;
return x;
}
//逆置
void Converts(SeqList& L) {
int n = L.length / 2;
DataType x = 0;
for (int i = 0; i < n; i++) {
x = L.data[i];
L.data[i] = L.data[L.length - i - 1];
L.data[L.length - i - 1] = x;
}
}
##找最大值和最小值
void MaxMin(SeqList& L, DataType & max, DataType &min, int& k, int& j) {
int i;
max = L.data[0];
min = L.data[0];
k = j = 1;
for (i = 1; i < L.length; i++) {
if (L.data[i]> max) {
max = L.data[i];
k = i;
}
if (L.data[i]< min) {
min = L.data[i];
j = i;
}
}
}
int main()
{
SeqList L;
L.length = 5;
L.data[0] = 19;
L.data[1] = 15;
L.data[2] = 37;
L.data[3] = 12;
L.data[4] = 25;
for (int i = 0; i < L.length; i++)
printf("%d ", L.data[i]);
printf("\n");
Converts(L);
//InsertList(L, 3, 12);
for (int i = 0; i < L.length; i++)
printf("%d ", L.data[i]);
printf("\n");
//DeleteList(L, 6);
}
///java 实现
public class SeqList { public static final Integer listSize = 100; private Object data[] = new Object[listSize]; private Integer length = 0; public void insertList(int i, Object x) throws Exception { if (length < 1 || i > length) { throw new Exception("position error"); } if (length >= listSize) { throw new Exception("overflow"); } for (int j = length - 1; j >= i - 1; j--) { data[j + 1] = data[j]; } this.length++; data[i - 1] = x; } public Object deleteList(int i) throws Exception { if (length < 1 || i > length) { throw new Exception("position error"); } Object x = data[i - 1]; for (int j = i - 1; j < length - 1; j++) { data[j] = data[j + 1]; } this.length--; return x; } //逆值 public void converts() { Object x = null; for (int j = 0; j < this.length / 2; j++) { x = data[j]; data[j] = data[this.length - j - 1]; data[this.length - j - 1] = x; } } public static Integer getListSize() { return listSize; } public Object[] getData() { return data; } public void setData(Object[] data) { this.data = data; } public Integer getLength() { return length; } public void setLength(Integer length) { this.length = length; } }