/***
name: create a seqlist
receive: seqlist address
return: int
***/
int creat(Seqlist* L){
int len;
L->length = 0;
printf("Enter the length of the seqlist:");
scanf("%d", &len);
if (len <= 100){
for (int i = 0; i < len; i++){
printf("Enter the %d element of the seqlist:", (i + 1));
scanf("%d", &(L->data[i]));
L->length++;
}
return 0;
}
else{
printf("the length overflow!");
return -1;
}
}
/***
name: print the seqlist
receive: seqlist
return: int
***/
int show(Seqlist L){
if (L.length > 0){
for (int i = 0; i < (L.length); i++)
printf("%d ", L.data[i]);
printf("\n");
return 0;
}
else{
printf("The seqlist is empty!");
return -1;
}
}
/***
name: get a element of the seqlist
reveive: seqlist, position
returen: int
***/
int getelement(Seqlist L, int locate){
if (locate <= L.length)
return L.data[locate - 1];
return -1;
}
/***
name: insert a data to the seqlist
receive: seqlist address, insert position, insert data
return: int
***/
int insert(Seqlist *L, int locate, int element){
if ((L->length) < 100){
for (int i = (L->length); i>locate; i--)
L->data[i] = L->data[i - 1];
L->data[locate] = element;
L->length++;
return 0;
}
else{
printf("seqlist is full!");
return -1;
}
}
/***
name: delete a element from the seqlist
receive: seqlist address, element
return int
***/
int delete_by_element(Seqlist* L, int element){
for (int i = 0; i < L->length; i++){
if (L->data[i] == element){
for (int j = i; j < L->length; j++){
L->data[j] = L->data[j + 1];
}
}
}
L->length--;
return 0;
}
/***
name: delete a element from the seqlist
receive: seqlist address, position
return: int
***/
int delete_by_position(Seqlist* L, int locate){
if (locate < L->length){
for (int i = (locate-1); i < L->length; i++){
L->data[i] = L->data[i + 1];
}
}
L->length--;
return 0;
}
線性表操作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.