關於下面的程序,我有兩個問題,第一:指針的初始值在這裡怎麼設置?我如何讓他指向鏈表的初始結點?第二,prior:=prior^.next;這條語句好象沒執行,為什麼?怎麼設置這個循環呢?procedure TForm1.Button2Click(Sender: TObject);
//插入
type
PNode=^TNode;
TNode=Record
ElemValue:string;
prior:PNode;
next:PNode;
end;
var
prior:PNode;
begin
new(prior);
if prior^.ElemValue=Edit2.text then
begin
prior.next^.ElemValue :=Edit3.Text; prior.next.next^.elemvalue:=prior.next^.ElemValue;
end;
prior:=prior^.next;
end;
//插入
type
PNode=^TNode;
TNode=Record
ElemValue:string;
prior:PNode;
next:PNode;
end;
var
prior:PNode;
begin
new(prior);
if prior^.ElemValue=Edit2.text then
begin
prior.next^.ElemValue :=Edit3.Text; prior.next.next^.elemvalue:=prior.next^.ElemValue;
end;
prior:=prior^.next;
end;
procedure TForm1.Button1Click(Sender: TObject);
type
PNode=^TNode;
TNode=Record
ElemValue:string;
prior:PNode;
next:PNode;
end;
var
Nodes: Array of PNode;
I: Integer;
P: PNode;
begin
SetLength(Nodes, 5);
for I := Low(Nodes) to High(Nodes) do
begin
New(Nodes[I]);
with Nodes[I]^ do
begin
ElemValue := IntToStr(I);
prior := nil;
next := nil;
end;
if I > Low(Nodes) then
begin
Nodes[I].prior := Nodes[I-1];
Nodes[I-1].next := Nodes[I];
end;
end;
P := Nodes[0];
while P.next <> nil do
begin
ShowMessage(P.ElemValue);
P := P.next;
end;
//最后用Dispose释放所有链表的节点
end;—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
prior.next^.next^.elemvalue:=prior.next^.ElemValue;
你到底想干嘛??
type
PNode=^TNode;
TNode=Record
ElemValue:string;
prior:PNode;
next:PNode;
head:pnode;
end;
var
head:PNode;
prior:PNode;
anext:PNode;
procedure TForm1.Button1Click(Sender: TObject);
//初始化
begin
new(prior);
new(anext);
prior.ElemValue:=S;
while(edit1.text<>'') do
begin
if prior.ElemValue='' then
begin
prior.ElemValue:=edit1.text;
Edit5.Text:= Edit5.Text+' '+prior^.ElemValue;
S:=edit1.Text;
S1:=edit1.Text;
head:=prior;
break;
end
else begin
anext.ElemValue:=edit1.text;
Edit5.Text:= Edit5.Text+' '+anext.ElemValue;
S:=edit1.Text;
S3:=edit1.Text;
end;
prior.next:=anext;
prior:=anext;
break;
end;
anext:=head;
end;