This repository has been archived on 2023-11-30. You can view files and clone it, but cannot push or open issues or pull requests.
DataStructure_ArrayList_C/main.cpp

113 lines
2.5 KiB
C++
Raw Normal View History

2023-05-20 16:55:53 +08:00
/*
2023-05-20 17:31:33 +08:00
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>xiao_lfeng <EFBFBD><EFBFBD>д
2023-05-20 17:32:28 +08:00
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɴ˻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ICP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ICP<EFBFBD><EFBFBD>2022014822<EFBFBD><EFBFBD>
2023-05-20 16:55:53 +08:00
*/
#include <cstdio>
2023-05-20 17:23:02 +08:00
#include <cstdlib>
2023-05-20 16:55:53 +08:00
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} ArrayList;
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>
void InitList(ArrayList &L) {
L.length = 0;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>
2023-05-20 17:23:02 +08:00
void DestroyList(ArrayList &L) {}
2023-05-20 16:55:53 +08:00
// <20><>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2023-05-20 17:23:02 +08:00
void PutSeqList(ArrayList &L, int n) {
2023-05-20 16:55:53 +08:00
// <20>жϵ<D0B6>ǰ<EFBFBD><C7B0><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
if (L.length + n >= MAXSIZE) {
printf("[WARNING] <20><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
return;
}
// ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2023-05-20 17:23:02 +08:00
int inputData;
printf("[INFO] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d <20><><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>м<EFBFBD><D0BC>ûس<C3BB><D8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n", n);
for (int i = L.length; i < L.length + n; ++i) {
printf("[INPUT] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d <20><><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>", i + 1);
scanf_s("%d", &inputData);
L.data[i] = inputData;
}
L.length += n;
2023-05-20 16:55:53 +08:00
}
2023-05-20 17:23:02 +08:00
// <20><><EFBFBD>Ա<EFBFBD><D4B1>ij<EFBFBD><C4B3><EFBFBD>
int LengthList(ArrayList L) {
2023-05-20 17:31:33 +08:00
return L.length;
2023-05-20 16:55:53 +08:00
}
2023-05-20 17:23:02 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ֵΪindexԪ<78>ص<EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>λ<EFBFBD>õ<EFBFBD><C3B5>߼<EFBFBD><DFBC><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3>߼<EFBFBD><DFBC><EFBFBD><EFBFBD>Ŵ<EFBFBD>1<EFBFBD><31>ʼ<EFBFBD><CABC>
int PositionList(ArrayList &L, int index) {
if (index > L.length || index <= 0) {
printf("[WARNING] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>");
return -999;
}
return L.data[index - 1];
2023-05-20 16:55:53 +08:00
}
2023-05-20 17:23:02 +08:00
// <20><><EFBFBD><EFBFBD><EBB5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>e
int InsertList(ArrayList &L, int index, int e) {
if (index > L.length || index <= 0) {
printf("[WARNING] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>");
return 0;
}
for (int i = L.length; i >= index - 1; --i) {
L.data[i] = L.data[i - 1];
}
L.data[index - 1] = e;
L.length++;
printf("[WARNING] <20><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD> %d λ<>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d\n", index, e);
return 1;
2023-05-20 16:55:53 +08:00
}
2023-05-20 17:23:02 +08:00
// <20><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void OutputSeqList(ArrayList L) {
printf("[INFO] <20><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>[ ");
for (int i = 0; i < L.length - 1; ++i) {
printf("%d ", L.data[i]);
}
printf("%d", L.data[L.length - 1]);
printf(" ]\n");
2023-05-20 16:55:53 +08:00
}
int main() {
ArrayList list;
InitList(list);
2023-05-20 17:23:02 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int size;
printf("[WAITING] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>");
scanf_s("%d",&size);
PutSeqList(list, size);
// <20><><EFBFBD><EFBFBD>
printf("[INFO] <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>%d\n", LengthList(list));
OutputSeqList(list);
// <20><><33>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
InsertList(list, 3, 0);
// <20><><EFBFBD><EFBFBD>
printf("[INFO] <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>%d\n", LengthList(list));
OutputSeqList(list);
2023-05-20 17:31:33 +08:00
// <20><><EFBFBD>ص<EFBFBD>5<EFBFBD><35><EFBFBD>±<EFBFBD>λ<EFBFBD><CEBB>
int info_data = 5;
printf("[INFO] <20><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD> %d <20><><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>%d\n",info_data, PositionList(list,info_data));
2023-05-20 16:55:53 +08:00
DestroyList(list);
2023-05-20 17:23:02 +08:00
system("pause");
2023-05-20 16:55:53 +08:00
return 0;
}