If you are going to give a seminar it is a good idea to know what you are talking about.
Do you know what a linked list is? Do you know how to implement one in the abstract? Can you implement one in C/C++/Pascal/whatever you like? Do you know the difference between singly-linked and doubly-linked lists? Do you know the advantages and disadvantages of using a linked list?
Do you know what recursion is? Do you know its pitfalls? Do you know how to convert a recursive procedure to one that uses a loop? (While you are at it, read up on tail-call recursion.)
Here is a recapitulation of the very first post (with some errors fixed):
program a;
type
pStudent = ^tStudent;
tStudent = record
name: string;
next: pStudent
end;
function getStudentsFromUser: pStudent;
var
head: pStudent;
curr: pStudent;
name: string;
begin
head := nil;
writeln( 'Enter student names, one per line.' );
writeln( 'When done, enter a blank line' );
{ Get the first name }
readln( name );
name := trim( name );
while name <> '' do
begin
{ Add a new student to the list }
if head = nil
then begin
{ Create the first node in the list }
new( head );
curr := head
end
else begin
{ Tack a new node on the existing list }
new( curr^.next );
curr := curr^.next
end;
{ Fill the node with data }
curr^.name := name;
curr^.next := nil;
{ Get the …