delphi中队列的长度能否设定,怎样设定(50分)

  • 主题发起人 主题发起人 guaiguaizhang
  • 开始时间 开始时间
G

guaiguaizhang

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么没人回答呀
 
什么队列,TQueue吗?
 
不是很明白,你可以定义一个队列结构
type
TQueueElement=Type Pointer;
TQueue=record
Count:integer;
Items:array of TQueueElement;
end;
var
Queue:TQueue;
//入列
Inc(Queue.Count);
//设定大小
setLength(Queue.items,Queue.Count);
....
 
TQueue=record
Count:integer;
Items:array of TQueueElement;
end;
这样定义,队列不就成数组了,我是这样定义的
type
TMy_Queue = Class
private
FQueue : TObjectQueue;
FLock : TCriticalSection;
public
constructor Create();
destructor Destroy();override;
function Push(AObject: LongInt):Longint;
function Pop: LongInt;
function Peek: LongInt;
function Count: Integer;
end;
但不知道,队列大小是否可以改变
 
用链表吧!
或用动态数组
setLength()可以改变数组的大小。
 
队列用数组做存储空间怎么不行?
数组 + 符合队列特性(先入先出)的操作 = 队列(静态的)
不明白 什么叫 长度能不能设定 ?
我理解 楼主是不是 想实现一个定长的 队列?
这样 可以用 链表 ,然后附加 一个 指示长度的 变量,在相关 操作中(比如 入队)检测这个变量,超过了指示的长度 就 从操作中返回。
说白了就是将一个 不定长的 队列 加入限制变量 改成 定长队列。
 
后退
顶部