1 修改变量值 Modifying variable values
#include
#include
#include
//void modify_num(int& a) {
// ++a;
//}
//
//void modify_pointer(int*& p) {
// p = (int*)malloc(20);
// p[0] = 5;
//}
//
//int main() {
// int a = 10;
// modify_num(a);
// printf("a=%dn", a);
// int* p = NULL;
// modify_pointer(p);
// printf("p[0]=%dn", p[0]);
// return 0;
//}
2 顺序结构 Sequential structure
#define MaxSize 50 //定义常量不需要末尾加; Defining constants doesn't require the end add;
typedef int ElemType;
typedef struct {
ElemType data[MaxSize];
int length;
}SqList;
bool ListInsert(SqList& L, int i, ElemType e) {
if (i<1 || i>L.length + 1) {
return false;
}
else if(L.length>=MaxSize){
return false;
}
else {
for (int j = L.length; j >= i; j--) { //顺序表数据向后移动 Sequential table data moves backward
L.data[j] = L.data[j - 1];
}
L.data[i - 1] = e;
L.length++;
return true;
}
}
bool ListDelect(SqList&L,int i,ElemType &e ) {
if (i<1 || i>L.length) {
return false;
}
else if (L.length == 0) {
return false;
}else {
e = L.data[i - 1];
for (int j = i; j < L.length; j++) {//从i的位置依次把元素覆盖 The position of the element is covered from the position of I
L.data[j - 1] = L.data[j];
}
L.length--;
return true;
}
}
int locate_element(SqList L, ElemType e) {
for (int i = 0; i < L.length; i++) {
if (L.data[i] == e) {
return i+1;
}
return 0;
}
}
void PrintList(SqList& L) {
for (int i = 0; i < L.length; i++) {
printf("%3d", L.data[i]);
}
printf("n");
}
int main() {
SqList L;
bool ret;
ElemType del=NULL;
L.data[0] = 1;
L.data[1] = 2;
L.data[2] = 3;
L.length = 3;
ret = ListInsert(L, 2, 60);
if (ret) {
printf("sccessfuln");
PrintList(L);//打印成功顺序表 Print successful sequence table
}
else {
printf("failn");
}
ret = ListDelect(L, 1, del);
if (ret) {
printf("%dn", del);
PrintList(L);
}
else {
printf("fail");
}
ret = locate_element(L, 60);
if(ret){
printf("successfuln");
printf("locate=%dn",ret);
}else{
printf("false");
}
return 0;
}