微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 单项链接的接口问题

单项链接的接口问题

时间:08-26 来源:周立功单片机 点击:

             // int类型数据

8    } slist_int_t;

9

10  int list_node_process(void *p_arg, slist_node_t *p_node)

11  { 

12        printf("%d  ", ((slist_int_t *)p_node)->data);

13        return 0;

14  } 

15

16  int my_list_add(slist_head_t *p_head, int data)         // 插入一个数据

17  {

18        slist_int_t *p_node = (slist_int_t *)malloc(sizeof(slist_int_t));

19        if (p_node == NULL) {

20             printf("The malloc memory failed!"); 

21             return -1;

22        }

23        p_node->data = data;

24        slist_add_head(p_head, &(p_node->node));     // 将结点加入链表中

25      return 0;

26  } 

27

28  int my_list_del (slist_head_t *p_head, int data)         // 删除一条数据

29  { 

30        slist_node_t *p_node = slist_begin_get(p_head);

31       slist_node_t *p_end  = slist_end_get(p_head);

32        while (p_node != p_end){

33             if (((slist_int_t *)p_node)->data == data){ 

34                   printf("\n delete the data %d :", data);

35                   slist_del(p_head, p_node);            // 删除结点

36                   free(p_node); 

37                   break;

38             } 

39             p_node = slist_next_get(p_head, p_node);

40        } 

41        slist_foreach(p_head, list_node_process, NULL);  // 删除结点后,再打印出所有结点的数据信息

42      return 0;

43  }

44

45  int main(void)

46  { 

47        slist_head_t *p_head = (slist_head_t *)malloc(sizeof(slist_head_t));

48        slist_init(p_head);

49

50        my_list_add(p_head, 1);

51        my_list_add(p_head, 2); 

52        my_list_add(p_head, 3); 

53        slist_foreach(p_head, list_node_process, NULL);  // 打印出所有结点的数据信息

54        my_list_del(p_head, 1);

55        my_list_del(p_head, 2); 

56  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top