微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 周立功阐释高效的双向链表如何用

周立功阐释高效的双向链表如何用

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

19        dlist_int_t    node1, node2, node3;

20       dlist_init(&head);

21

22        node1.data = 1;

23        dlist_add_tail(&head, &(node1.node));

24        node2.data = 2;

25        dlist_add_tail(&head, &(node2.node));

26        node3.data = 3;

27        dlist_add_tail(&head, &(node3.node));

28

29       dlist_del(&head, &(node2.node));                       // 删除node2结点

30       dlist_foreach(&head, list_node_process, NULL);      // 遍历链表,用户参数为NULL

31        return 0;

32  } 

与单向链表的综合范例程序比较可以发现,程序主体是完全一样的,仅仅是各个结点的类型发生了改变。对于实际的应用,如果由使用单向链表升级为双向链表,虽然程序主体没有发生改变,但由于类型的变化,则不得不修改所有程序代码。这是由于应用与具体数据结构没有分离造成的,因此可以进一步将实际应用与具体的数据结构分离,将链表等数据结构抽象为"容器"的概念。

在公众号后台回复关键字"程序设计",即可在线阅读《程序设计与数据结构》;回复关键字"编程",即可在线阅读《面向AMetal框架与接口的编程(上)》。

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

网站地图

Top