第二题:LIST
描述:在该LIST上实现3种操作
1、append x在该LIST末尾添加x,x是32位整数
2、pop删除该LIST末尾的数
3、find i寻找第i个数,若i为负数表示寻找倒数第i个数,例如i = -1表示寻找倒数第一个
输入:第一行输入一个m,表示有m条操作,接下来每行输入一条操作
输出:输出find i找到的数
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
char cmd[6];
int m, x;
int *list = NULL, p = 0; //p is a pointer to the rear of list
scanf("%d", &m);
if(m>0){
list = (int *)malloc(sizeof(int)*m);
}
else{
return -1;
}
int i = 0;
for(; i<m; i++){
scanf("%s", &cmd);
if(strstr(cmd, "append")){
scanf("%d", &x);
*(list+p) = x;
p++;
}
else if(strstr(cmd, "pop")){
p--;
}
else if(strstr(cmd, "find")){
scanf("%d", &x);
if(x>=0){
printf("%d", list[x-1]);
}
else{
printf("%d", *(list+p+x));
}
}
}
// for(i = 0; i<p; i++){
// printf("%d ", list[i]);
// }
}