数据结构中的队列与搜索
1. 队列基础
队列是一种重要的数据结构,遵循先进先出(FIFO)原则,与栈的后进先出不同。队列有两个基本操作:入队(enqueue)用于向队列添加元素,出队(dequeue)用于移除最早加入的元素。
2. 链表实现队列
使用链表实现队列可以模拟超市排队的场景。如果使用单链表,通常从链表头部出队,从尾部入队;双链表可以从任意一端进行操作,但会消耗更多内存。这两种操作的时间复杂度都是 O(1)。
以下是 TtdQueue 类的代码实现:
TtdQueue = class
private
FCount : longint;
FDispose : TtdDisposeProc;
FHead : PslNode;
FName : TtdNameString;
FTail : PslNode;
protected
procedure qError(aErrorCode : integer; const aMethodName : TtdNameString);
class procedure qGetNodeManager;
public
constructor Create(aDispose : TtdDisposeProc);
destructor Destroy; override;
procedure Clear;
function Dequeue : pointer;
procedure Enqueue(aItem : pointer);
订阅专栏 解锁全文
2042



被折叠的 条评论
为什么被折叠?



