[英]Pointer base and top for linked list in C
基于链表的数据结构堆栈具有基础指针和顶部指针
指向堆栈的成员。
struct node
{
struct node* next;
int val;
};
struct stack
{
struct node* base;
struct node* top;
}
所以我的问题是我们可以使用相同的方法来创建链接列表吗?
如果我们想将新成员添加到列表的末尾,则不需要
遍历整个列表。
struct listnode
{
struct listnode* next;
int val;
};
struct linkedlist
{
struct listnode* base;
struct listnode* top;
}
这合适吗?
纯堆栈仅需要顶部指针。 也许您正在使用该数据结构作为queue ,从头开始添加到末尾。
链表只需要一个头 ,但对于追加到最后一个尾巴将是有益的。
struct linkedlist
{
struct listnode* head;
struct listnode* tail;
int count; // Might be useful
}
(我使用了常规名称。)
可能有人会提到双重链表 :
struct node
{
struct node* previous;
struct node* next;
int val;
};
这将允许头和尾的完全对称使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.