VSCode開發STM32 迴圈佇列(三)

2021-10-18 13:30:30 字數 4827 閱讀 9351

迴圈佇列比普通的順序表復用**後可以大量節省出列的時間。

stm32+移植好的lwmem記憶體管理(提供malloc函式)

與實現的迴圈佇列關係不大,主要是補充資料結構檔案內容。

sequence_list.**件

#ifndef zzj_sequence_list_h

#define zzj_sequence_list_h

typedef

void sequencelist;

//定義陣列順序表型別 定義為void,利用void指標可以指向任意型別資料的性質

typedef

void sequencelistnode;

//定義陣列順序表元素的型別 定義為void,利用void指標可以指向任意型別資料的性質

sequencelist*

sequencelistcreate

(int capacity)

;//建立容量為capacity的 陣列順序表

void

sequencelistdestroy

(sequencelist* list)

;//銷毀list陣列順序表

void

sequencelistclear

(sequencelist* list)

;//清空list資料順序表

intsequencelistlength

(sequencelist* list)

;//獲取list內容長度

intsequencelistcapacity

(sequencelist* list)

;//獲取list內容容量

_bool

sequencelistinsert

(sequencelist* list,sequencelistnode* node,

int pos)

;//將node插入到list的pos位置

sequencelistnode*

sequencelistget

(sequencelist* list,

int pos)

;//獲取list第pos位的元素指標

sequencelistnode*

sequencelistdelete

(sequencelist* list,

int pos)

;//刪除list第pos位的元素,返回該刪除元素指標

#endif

sequence_list.c

#include

"sequence_list.h"

#include

"lwmem.h"

typedef size_t tsequencelistnode;

//存放資料的位址 size_t位址型別

typedef

struct _tag_sequencelist

tsequencelist;

//建立容量為capacity的 陣列順序表

sequencelist*

sequencelistcreate

(int capacity)

return ret;

}void

sequencelistdestroy

(sequencelist* list)

//銷毀list陣列順序表

}void

sequencelistclear

(sequencelist* list)

//清空list資料順序表

}int

sequencelistlength

(sequencelist* list)

//獲取list內容長度

return ret;

}int

sequencelistcapacity

(sequencelist* list)

//獲取list內容容量

return ret;

}_bool

sequencelistinsert

(sequencelist* list,sequencelistnode* node,

int pos)

//將node插入到list的pos位置,返回值1正確0錯誤

slist->node[pos]

=(tsequencelistnode)node;

slist->length++;}

return ret;

}sequencelistnode*

sequencelistget

(sequencelist* list,

int pos)

//獲取list第pos位的元素指標

return ret;

}sequencelistnode*

sequencelistdelete

(sequencelist* list,

int pos)

//刪除list第pos位的元素,返回該刪除元素指標

slist->length--;}

return ret;

}

sequence_queue.h

#ifndef zzj_sequence_queue_h

#define zzj_sequence_queue_h

typedef

void sequencequeue;

//定義陣列佇列型別 定義為void,利用void指標可以指向任意型別資料的性質

typedef

void sequencequeuenode;

//定義陣列佇列元素的型別 定義為void,利用void指標可以指向任意型別資料的性質

sequencequeue*

sequencequeuecreate

(int capacity)

;//建立容量為capacity的陣列佇列

void

sequencequeuedestroy

(sequencequeue* queue)

;//銷毀queue陣列佇列

void

sequencequeueclear

(sequencequeue* queue)

;//清空queue陣列佇列

intsequencequeuelength

(sequencequeue* queue)

;//獲取queue陣列長度

intsequencequeuecapacity

(sequencequeue* queue)

;//獲取queue陣列容量

sequencequeuenode*

sequencequeueheader

(sequencequeue* queue)

;//獲取queue佇列頭元素

_bool

(sequencequeue* queue,sequencequeuenode* node)

;//node進queue佇列尾

sequencequeuenode*

sequencequeueretrieve

(sequencequeue* queue)

;//node出queue佇列頭

#endif

// !zzj_sequence_queue_h

sequence_queue.c

#include

"sequence_queue.h"

#include

"lwmem.h"

typedef size_t tsequencequeuenode;

//存放資料的位址 size_t位址型別

typedef

struct _tag_sequencequeue

tsequencequeue;

sequencequeue *

sequencequeuecreate

(int capacity)

//建立容量為capacity的陣列佇列

if(ret !=

null

)return ret;

}void

sequencequeuedestroy

(sequencequeue *queue)

//銷毀queue陣列佇列

void

sequencequeueclear

(sequencequeue *queue)

//清空queue陣列佇列

intsequencequeuelength

(sequencequeue *queue)

//獲取queue陣列長度

intsequencequeuecapacity

(sequencequeue *queue)

//獲取queue陣列容量

sequencequeuenode *

sequencequeueheader

(sequencequeue *queue)

//獲取queue佇列頭元素

return ret;

}_bool

(sequencequeue *queue, sequencequeuenode *node)

//node進queue佇列尾

return ret;

}sequencequeuenode *

sequencequeueretrieve

(sequencequeue *queue)

//node出queue佇列頭

return ret;

}

STM32開發點滴

上北郵研究生以來,恍恍惚惚已經過了一年,隨著師兄師姐們陸續離開實驗室去工作崗位,這下半年開始頓感壓力很大,主要還是因為自己太水了,演算法不精,語言不精,也沒發,連身體都沒鍛鍊好。所以這學期開始得要好好幹點對得起自己的事了。就順便記錄一下即將交工的stm32的專案,也算是對自己的激勵。用keil開發的...

STM32開發 GPIO詳解

之前有簡單講過gpio工作模式和暫存器,還是有點沒搞明白。這次需要全方位的看一下了。可知 stm32f105rc 一共有4組io口 一共16x3 3 51個io gpioa0 a15 gpiob0 b15 gpioc0 c15 gpiod0 d2 stm32f105rc使用gpio埠號為 gpioa...

STM32開發 資料搜尋

需要從netty裡搜尋某個內容的資料。該如何搜搜呢?需要用到的指令有 grep zcat find xargs sed等。之前都有講過,整理一下。簡單的實現。參看 c語言再學習 linux 中常用基本命令 參看 c語言再學習 grep 命令 參看 c語言再學習 linux下find命令用法 參看 c...