自己动手写的(已经AC通过),因为编译软件用的是VS,所以主要是用C++语言完成
#include<iostream>
using namespace std;
#define maxsize 1000
class sqlist {
public:
int data[maxsize];
int length;
void insert(int num);
void display();
};
void sqlist::display()
{
for (int i = 0; i < this->length; i++)
{
cout << data[i] << " ";
}
}
void sqlist:: insert(int num)
{
int i;
for (i = 0; i < length; i++)
{
if (data[i] >= num)
break;
}
for (int j = length - 1; j >= i; j--)
{
data[j + 1] = data[j];
}
data[i] = num;
length++;
}
int main()
{
sqlist sq;
int enumb;
int num;
cin >> enumb;
sq.length = enumb;
for (int i = 0; i < enumb; i++)
cin >> sq.data[i];
cin >> num;
sq.insert(num);
sq.display();
return 0;
}
#include<iostream>
using namespace std;
#define maxsize 1000
class sqlist {
public:
int data[maxsize];
int length;
void inverse();
void display();
};
typedef struct lnode
{
int data;
struct lnode* next;
}lnode;
lnode* initlinklist()
{
lnode* p = (lnode*)malloc(sizeof(lnode));
p->data = 0;
p->next = NULL;
return p;
}
void insertlinklist(lnode* L, int i, int e)
{
lnode* p = L;
int j = 0;
while (p && j < i - 1)
{
p = p->next;
j++;
}
if (!p || j > i - 1)
return;
lnode* temp = (lnode*)malloc(sizeof(lnode));
temp->data = e;
temp->next = p->next;
p->next = temp;
return;
}
void inversel(lnode* L, int enumb)
{
lnode* p = L->next;
lnode* q = p;
L->next = NULL;
for (int i = 0; i < enumb; i++)
{
if (i != 0)
q = p;
p = p->next;
q->next = L->next;
L->next = q;
}
}
void destroylinklist(lnode* p)
{
lnode* fr = NULL;
while (p)
{
fr = p;
p = p->next;
free(fr);
}
}
void sqlist::display()
{
for (int i = 0; i < this->length; i++)
{
cout << data[i] << " ";
}
cout << endl;
}
void sqlist::inverse()
{
int temp = 0;
for (int i = 0; i < (1 + length) / 2; i++)
{
temp = data[i];
data[i] = data[length - i - 1];
data[length - i - 1] = temp;
}
}
int main()
{
int enumb;
sqlist sq;
lnode* p = initlinklist();
cin >> enumb;
sq.length = enumb;
for (int i = 0; i < sq.length; i++)
{
int num;
cin >> num;
sq.data[i] = num;
insertlinklist(p, i + 1, num);
}
sq.inverse();
sq.display();
inversel(p, enumb);
p = p->next;
while (p)
{
cout << p->data << " ";
p = p->next;
}
destroylinklist(p);
return 0;
}
#include<iostream>
using namespace std;
#define maxsize 1000
class sqlist {
public:
int data[maxsize];
int length;
int search(int e);
void insert(int num);
void display();
void desqlist(int e);
};
void sqlist::display()
{
for (int i = 0; i < this->length; i++)
{
cout << data[i] << " ";
}
}
void sqlist::insert(int num)
{
int i;
for (i = 0; i < length; i++)
{
if (num >= data[i])
break;
}
for (int j = length - 1; j >= i; j++)
{
data[j+1] = data[j];
}
data[i] = num;
length++;
}
int sqlist::search(int e)
{
for (int i = 0; i < length; i++)
{
if (data[i] == e)
return 1;
}
return 0;
}
void sqlist::desqlist(int e)
{
if (search(e) == 0)
return;
int j;
for (j = 0; j < length; j++)
{
if (data[j] == e)
break;
}
for (int i = j; i < length; i++)
{
data[i] = data[i+1];
}
length--;
}
int main()
{
sqlist A, B, C;
cin >> A.length >> B.length >> C.length;
for (int i = 0; i < A.length; i++)
{
cin >> A.data[i];
}
for (int i = 0; i < B.length; i++)
{
cin >> B.data[i];
}
for (int i = 0; i < C.length; i++)
{
cin >> C.data[i];
}
for (int j = 0; j < B.length; j++)
{
if (C.search(B.data[j]))
A.desqlist(B.data[j]);
}
A.display();
return 0;
}