求助! 链表处理学生信息 按学号排序 我想写一个链表排一下序
delphi吧
全部回复
仅看楼主
level 1
liukai871753 楼主
procedure TForm1.Label5Click(Sender: TObject);
var
tempp,p,q,q1:plink;
begin
new(tempp);
q:=nil;
tempp^.xh:=edit1.Text;
tempp^.xm:=edit2.Text;
tempp^.xb:=edit3.Text;
tempp^.bj:=edit4.Text;
tempp^.next:=nil;
if dtrec=nil then
begin
new(dtrec);
dtrec:=tempp;
end
else
begin
p:=tempp;
if p.xh>dtrec.xh then
begin
dtrec.next:=q;
dtrec.next:=p;
p.next:=q;
end
else
begin
p.next:=dtrec;
dtrec:=p;
while p.next<>nil do
if (tempp.xh>p.xh)and(p.next.xh>tempp.xh) then
begin
q1:=p.next;
p.next:=tempp;
tempp.next:=q1;
end;
end;
end;
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit1.SetFocus;
end;
2013年05月22日 12点05分 1
level 14
你就不能用个格式器排下版
也就是普通的插入排序法,
14行:是多余的
new(dtrec);
应该是降序排序吧
所以20-25行改成
p.next := dtrec;
dtrec := p;
27-37行改成
q := dtrec;
while q.next <> nil and (q.next.xh >= p.xh) then
q := q.next;
if (q.next = nil) then
q.next := p
else begin
p.next := q.next;
q.next := p;
end
强烈建议你好好看下书。。。
2013年05月29日 14点05分 2
level 3
这题你解决没?运行不出来啊
2015年05月10日 14点05分 4
1