6-2 顺序表操作集 (20 分)
题目地址:https://pintia.cn/problem-sets/15/problems/725
顺序表基本操作
注意初始化空表的时候 List L = (List)malloc(sizeof(List)) 会导致答案错误,但是本地编译并不会报错
正确写法应该是 List L = (List)malloc(sizeof(struct LNode))
List MakeEmpty() { List L = (List)malloc(sizeof(struct LNode));//sizeof(list)会导致答案错误--++ L->Last = -1; return L; } Position Find(List L, ElementType X) { for(int i = 0; i <= L->Last; ++i) { if(L->Data[i] == X) return i; } return ERROR; } bool Insert(List L, ElementType X, Position P) { if(L->Last+1 == MAXSIZE) { printf("FULL"); return false; } if(P > L->Last+1 || P < 0) { printf("ILLEGAL POSITION"); return false; } for(int i = L->Last+1; i > P; i--) { L->Data[i] = L->Data[i-1]; } L->Data[P] = X; L->Last++; return true; } bool Delete(List L, Position P) { if(P > L->Last || P < 0) { printf("POSITION %d EMPTY", P); return false; } for(int i = P; i < L->Last; ++i) { L->Data[i] = L->Data[i+1]; } L->Last--; return true; }
MILE NEVER GIVE UP!!!