- prev := @nil
- while ?p and then p.this < new:
- prev = p
- p = p.next
- if ?prev:
- prev.next = @new()
- prev.next.next = p
- prev.next.this = new
- else
- list = @new()
- list.next = p
- list.this = new
- use list
-
- func printlist(list:@node)
- while ?list:
- print list@.this
- list = list@.next
-
- func freelist(list:@node)
- if list != @nil:
- freelist(list.next)
- @free = list
-
- func main(argv:[ac::]string)
- list := insert(@nil, "@start")
- list = insert(list, "~end")
- for i:=1; then i=i+1; while i < ac:
- list = insert(list, argv[i])
- list = insert(list, "Hello!")
+ while ?p.next and p.next.this < new:
+ p = p.next.list
+ t:@node = @new()
+ t.list.next = p.next
+ t.this = new
+ p.next = t;
+
+ func printlist(list:@linkage)
+ while ?list.next:
+ print list@.next.this
+ list = list@.next.list
+
+ func freelist(list:@linkage)
+ if list.next != @nil:
+ lp:@linkage = list.next.list
+ freelist(lp)
+ @free = list.next
+
+ func main(argv:[]string)
+ list : linkage
+
+ insert(list, "@start");
+ insert(list, "~end")
+ for i:=1; then i=i+1; while i < argv[]:
+ insert(list, argv[i])
+ insert(list, "Hello!")