I'm trying to finish my linked list sorting procedure , but it's not working properly.
I need to sort the list in ascending alphabetical order.
Am i doing something wrong?
program linked_lists;
const LIM = ';';
type node = ^nd;
nd = record
data:string[50];
next:node;
end;
mn = set of char;
procedure AddToList(var list:node;data:string[50]);
var newNode:node;
begin
new(newNode);
newNode^.data:=data;
newNode^.next:=list;
list:=newNode;
end;
procedure PrintList(list:node);
var nnode:node;
begin
nnode:=list;
while nnode <> nil do begin
writeln(nnode^.data);
nnode:=nnode^.next;
end;
end;
procedure SortList(var list:node);
var l1,l2:node;
temp:string[50];
o1,o2:integer;
begin
l1:=list;
l2:=list;
while l1<> nil do begin
while l2<>nil do begin
o1:=ord(l1^.data[1]);
o2:=ord(l2^.data[1]);
if o1<o2 then begin
temp:=l1^.data;
l1^.data:=l2^.data;
l2^.data:=temp;
exit;
end;
l2:=l2^.next;
end;
l1:=l1^.next;
end;
end;
function checkRepeating(st:string[50]):boolean;
var i,j:integer;
begin
checkRepeating:=false;
for i:=1 to length(st) do
for j:=1 to length(st) do
if i<>j then
if st[i]=st[j] then checkRepeating:=true;
end;
var list:node;
ald:mn;
f1:text;
temp:string;
begin
AddToList(list,'c');
AddToList(list,'a');
AddToList(list,'b');
AddToList(list,'z');
PrintList(list);
SortList(list);
writeln('=========================');
PrintList(list);
end.
This post has been edited by ToastyToast: 11 June 2011 - 03:26 AM

New Topic/Question
Reply



MultiQuote




|