//SqList.h
#ifndef _SQ_LIST_
#define _SQ_LIST_
#define MAX 100
typedef struct _LinerList {
int data[MAX];
int length;
}SqList;
#endif // !_SQ_LIST_
//SqList_OP.h
#ifndef _SQ_LIST_OP_
#define _SQ_LIST_OP_
#include <stdio.h>
#include <stdlib.h>
#include "SqList.h"
void Init_List(SqList *L) { //初始化
L->length = 0;
}
void Prt_List(SqList *L) { //打印
int count = 0;
printf("The list is:\n");
for (count = 0; count < (L->length - 1); count++) {
printf("%d\n", L->data[count]);
}
}
void Crt_List(SqList *L) { //創建,錄入數據
int num = 0;
int i = 0;
do {
printf("input number\n");
scanf("%d", &num);
L->data[i] = num;
i++;
} while (num != -1);
L->length = i;//完成輸入,此時的長度爲錄入了-1的總長度
}
void Destroy_List(SqList *L) { //銷燬
free(L);
}
int List_Length(SqList *L) { //求順序表長度
return L->length;
}
void Get_Elem(SqList *L, int i, int *e) { //將表中第i個元素值返回給e
*e = L->data[i - 1];
printf("the value of e is %d\n", *e);
}
void Locate_Elem(SqList *L, int e) { //查找給定元素在表中第一次出現時的位置
int IsFound = 0;
int i;
for (i = 0; i < (L->length - 1); i++) {
if (L->data[i] == e) {
IsFound = 1;
break;
}
}
if (IsFound == 0) {
printf("Cannot Find!\n");
}
else {
printf("The number locate at number %d!\n", i + 1);
}
}
void Insert_List(SqList *L, int e, int i) { //在第i個元素插入新元素e
if (i < 1 || (i > L->length + 1)) {
printf("illegal value of i\n");
}
else {
int *q = &(L->data[i-1]);
int *last=L->data;
while (*last!=-1)
{
last++;
}
for (; last >= q;last--) {
*(last + 1) = *last;
}
*q = e;
L->length += 1;
}
}
void Delete_List(SqList *L, int i) { //刪除第i個元素的值
if (i < 1 || (i > L->length + 1)) {
printf("illegal value of i\n");
}
else {
int *q = &(L->data[i - 1]);
int *last = L->data;
while (*last != -1)
{
last++;
}
for (; q<=last; q++) {
*q = *(q+1);
}
L->length -= 1;
}
}
#endif // !_SQ_LIST_OP_
//main() fuc
#include <stdio.h>
#include <stdlib.h>
#include "SqList.h"
#include "SqList_OP.h"
void Init_List(SqList *L);
void Prt_List(SqList *L);
void Crt_List(SqList *L);
void Destroy_List(SqList *L);
int List_Length(SqList *L);
void Get_Elem(SqList *L, int i, int *e);
void Locate_Elem(SqList *L, int e);
void Insert_List(SqList *L, int e, int i);
void Delete_List(SqList *L, int i);
int main() {//測試
SqList *L = NULL;
L = (SqList *)malloc(sizeof(SqList));
Init_List(L);
Crt_List(L);
Prt_List(L);
printf("length is %d\n", List_Length(L));
//int e = 0;
int i = 0;
printf("Input the number i\n");
scanf("%d", &i);
//Insert_List(L, e, i);
Delete_List(L, i);
Prt_List(L);
printf("length is %d\n", List_Length(L));
getchar();
return 0;
}