Untitled
unknown
c_cpp
2 years ago
2.5 kB
5
Indexable
#include<stdio.h> #include<stdlib.h> #include<string.h> struct node{ long long val; struct node *nxt; }; typedef struct node unit; char str[109]; signed main(){ unit *head=(unit*)malloc(sizeof(unit)),*tail=(unit*)malloc(sizeof(unit)); int exist=0; while(scanf(" %s",str)!=EOF){ if(str[0]=='p'){ //印出陣列 if(exist==0) //陣列不存在 printf("\n"); else{ //存在就照順序列印 unit *pos=head; while(pos!=NULL){ printf("%lld ",pos->val); pos=pos->nxt; } printf("\n"); } } if(str[0]=='a'){ //在結尾插入 unit *cur=(unit*)malloc(sizeof(unit)); scanf(" %lld",&(cur->val)); cur->nxt=NULL; if(exist==0){ head=cur; tail=head; } else{ tail->nxt=cur; tail=cur; } printf("APPEND_SUCC\n"); exist=1; } if(str[0]=='s'){ long long x; scanf(" %lld",&x); int fail=1; unit *pos=head; while(pos!=NULL){ //遍歷linked list unit *tem=pos; if(tem->val==x){ fail=0; //找到符合的數字 } pos=pos->nxt; //指標指向下一個 } if(fail) //沒找到target printf("SEARCH_FAIL\n"); else //找到target printf("SEARCH_SUCC\n"); } if(str[0]=='u'){ //更新 long long x,y; scanf(" %lld %lld",&x,&y); int fail=1; unit *pos=head; while(pos!=NULL){ //遍歷linked list if(pos->val==x){ //找到target pos->val=y; //更新數字 fail=0; //設為0表示成功 } pos=pos->nxt; } if(fail) //更新失敗 printf("UPDATE_FAIL\n"); else //更新成功 printf("UPDATE_SUCC\n"); } } unit *pos=head; while(pos!=NULL){ unit *tem=pos; pos=pos->nxt; free(tem);//清空linked list元素 } }
Editor is loading...
Leave a Comment