日期:2018-9-11
一.今日任務:
學習資料結構中的樹形結構和線性結構,線性結構儲存方式分為:順序儲存(連續)、鏈式儲存(不連續)。主要學習線性結構中的棧(先進後出,如圖所示),分為:初始化棧、進棧、出棧、判斷棧是否為空、獲取棧頂元素、清空棧的相關函式編寫。
二.今日任務完成情況
今日任務已按計畫完成,上課**全部正常執行,今日**量:200。
三.今日開發中出現的問題彙總
對函式的傳值和傳址不夠熟悉,對指標的移動不夠熟練,還學要仔細思考、多加練習。
四.今日未解決問題
對結構體的使用通過指標訪問結構體成員變數還不熟悉,需要多練。
五.今日開發收穫
學會如何定義乙個新的標頭檔案,主要由三部分組成:
#ifndef stack_h
#define stack_h
// 相關語句塊
#endif
1.當預處理時把頭檔案展開放到c檔案下,第一條語句用於防止同乙個c程式重複包含同乙個標頭檔案。
2.棧的操作流程如下:
棧的標頭檔案定義
#ifndef stack_h
#define stack_h
#define maxsize 10
#define success 1000
#define failure 1001
struct stack;
typedef struct stack s; //重新定義
#endif
初始化棧
#include"stack.h"
#includeint initstack(s *s)
s->top = -1;//空棧,棧頂指標為-1
return success;
}
進棧
int push(s *s,int e)
if(s->top == maxsize - 1) //棧滿
s->data[s->top + 1] = e;
s->top++;
return success;
}
出棧
int pop(s *s) //出棧
if (-1 ==s->top) //空棧
int e = s->data[s->top]; //記錄棧頂元素
s->top--;
return e; //返回棧頂元素
}
判斷棧是否為空
int emptystack(s s)
獲取棧頂元素
int gettop(s s)
return s.data[s.top];
}
清空棧
int clearstack(s *s)
s->top = -1;
return success;
}
主函式的呼叫
#include#include"stack.h"
int main()
else
for (i = 0; i < 10; i++)
else
}for (i = 0; i < 3; i++)
else
}ret = emptystack(stack);
if (ret == success)
else
ret = gettop(stack);
if (ret == failure)
else
ret = clearstack(&stack);
if(ret == failure)
else
ret = emptystack(stack);
if (ret == success)
else
return 0;
}
執行結果
六.自我評價
只要多加練習一定可以孰能生巧。
嵌入式課程設計日誌
第二天日誌 姓名 楊戴文 日期 9.11 今日學習任務 在linux作業系統中完成初始化棧,進棧,出棧,判斷棧是否空,獲取棧頂元素,清空棧 今日任務完成情況 老師講解了各種資料結構儲存方式,練習了初始化棧,進棧,出棧,判斷棧是否空,獲取棧頂元素,清空棧。複習了昨天的各種運算子,我是一步步跟著老師走的...
嵌入式課程設計日誌
第四天日誌 姓名 楊戴文 日期 9.13 今日學習任務 編寫乙個關於停車場系統的小專案,要可以成功編譯執行 今日任務完成情況 跟著老師編寫的程式可以成功執行,量500 今日開發收穫 打 速度有所提公升,所犯的錯誤也變少了,對之前的知識點有了更深的印象 今日開發中出現的問題彙總 在編寫程式中少了括號,...
嵌入式課程設計日誌1
姓名 楊青 日期 2018.09.10 今日學習任務 安裝軟體,熟悉嵌入式開發環境 複習c語言的知識 問題彙總 很多c語言方面的知識已遺忘 語法編譯不熟練 今日開發中出現的問題彙總 之前學的c語言的一些命令不記得了,且c語言知識概念模糊 課堂筆記 int 4個位元組 short 2個位元組 doub...