蘇嵌學習日誌day2
name:錢成傑 date:2018.9.11 今日學習任務 初步瞭解資料結構,棧中存放的是陣列,進出的順序是:先進後出 線性結構的儲存方式:1.順序儲存(連續)2.鏈式儲存(不連續) 分別編寫的程式是(1).初始化棧(2).進棧(3).出棧(4).判斷棧是否空 (5).存取棧頂元素 (6).空棧 今日任務完成情況 上課能跟上老師教學進度,完成程式的編寫。在程式設計的過程中出現了一些符號的遺漏,總的完成還可以。 今日開發中出現的問題彙總 跟著老師學習編簡單的程式,還是有一些程式出現問題,對於陣列的儲存也有了一些瞭解,學會了標頭檔案的建立,檔案的儲存等,如:檔案的儲存命令ESC鍵->shift+; (:)->w+回車 所有檔案的編譯:gcc *c -o main 標頭檔案的初始化:#include”ifndef stack_h” #include”define stack_h” #endif 標頭檔案的第一句是為了防止同一個C檔案中包含同一個標頭檔案 預處理:處理#出現的程式碼 今日未解決問題
ret =InitStack(&stack);
if(SUCCESS == ret) {
printf("Init Success!\n");
}
else
{
printf("Init Failure!\n");
}
for(i=0;i<5;i++) { ret = push(&stack,i+1); if(SUCCESS == ret) { printf(“push %d success!\n”,i+1); } else { printf(“push failure!\n”); } }
for(i=0;i<3;i++) { ret =pop(&stack); if(ret==FAILURE) {printf(“pop failure!\n”); } else {printf(“pop %d success!\n”,ret); } }
ret =Emptystack(stack);
if(ret==SUCESS)
{printf("stack is empty!\n");
}
else
{
printf("stack is empty!\n");
}
ret =GetTop(stack);
if(ret == FAILURE)
{
printf("Get Top Failure!\n");
}
else
{
printf("Top %d\n",ret);
}
return 0;
}
Stack.c include”stack.h” include”stdlib.h” int InitStack(S *s) { if(NULL== s) { return FAILURE; }
s->top = -1;
return SUCCESS;
} int push(S *s,int e) {if(NULL==s) {return FAILURE; } if(s->top==MAXSIZE-1); {return FAILURE; } s->data[s->top+1]=e; s->top++; return SUCCESS; } int pop(S *s)
{ if(NULL==0) return FAILURE; } if(-1==s->top) {return FAILURE;
} int e=s->data[s->top]; { s->top- -; return 0; } int EmptyStack(S ,s) { return(s,top== -1)?SUCCESS :FAILURE; }
int Get Top(S,s)
{
if(s,top==-1);
return FAILURE;
}
return s,data[s,top];
}