list.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * @Description:
  3. * @Version: 2.0
  4. * @Author: Seven
  5. * @Date: 2023-05-15 10:33:07
  6. * @LastEditors: Seven
  7. * @LastEditTime: 2023-05-16 14:18:50
  8. */
  9. #ifndef __LIST_H__
  10. #define __LIST_H__
  11. #include "gd32f10x.h"
  12. //Á´±í½á¹¹
  13. typedef struct _list_single_t
  14. {
  15. uint16_t len;
  16. // uint8_t data[64];
  17. uint8_t *data;
  18. struct _list_single_t *next;
  19. }__attribute__((packed)) list_single_t;
  20. extern list_single_t *P_list;
  21. typedef struct _list_info_t
  22. {
  23. uint8_t insert_flag;
  24. uint8_t delet_flag;
  25. }list_info_t;
  26. extern list_info_t list_info;
  27. list_single_t *CreateLinkList(void);
  28. void DisplayLinkList(list_single_t *head);
  29. int list_insert_head(list_single_t *head, uint8_t *data, uint16_t len);
  30. int list_insert_tail(list_single_t *head, uint8_t *data, uint16_t len);
  31. int8_t Check_List_Empty(list_single_t *list);
  32. int list_delet_head(list_single_t *list);
  33. int list_delet_tail(list_single_t *list);
  34. void list_read_head(list_single_t *list, uint8_t *data, uint16_t *len);
  35. void list_read_tail(list_single_t *list, uint8_t *data, uint16_t *len);
  36. void test_list(void);
  37. void Bubble_Sort(uint8_t *data, uint16_t len);
  38. void Bidirectional_Bubble_Sort(uint8_t *data, uint16_t left, uint16_t right);
  39. void Select_Sort(uint8_t *data, uint16_t len);
  40. void Insert_Sort(uint8_t *data, uint16_t len);
  41. #endif