嵌入式課程設計 學習日誌 2

2021-08-27 20:54:34 字數 2368 閱讀 6889

日期: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...