Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Circular linked list help
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
imbored




PostPosted: Fri Jan 01, 2010 5:10 pm   Post subject: Circular linked list help

What is it you are trying to achieve?
make a circular linked list. and make the delete procedure stop when there is only one item left in the list. I am suppose to make it a circular linked list that holds the user input and then afterwards delete some until one is left. Also a backup of the list is needed of the original inputs. and when the program is finish running, it would display the original inputs and the one last remaining input.

but mainly i am trying to get it as a circular linked list.
ps: if it is circular does that means it loops over and over again from the top to the bottom and back to top. how do i stop it from going to infinite loop when i am deleting and displaying.
What is the problem you are having?
i dont understand how to link the ending of the linked list back at top.

Describe what you have tried to solve this problem
read guides and stuff. this code is just an edited version of a code in the guide.



Post any relevant code (You may choose to attach the file instead of posting the code if it is too long)

Turing:


type labelType :
    record
        name : string (20)
        link : int
    end record
const null := 0
const maxLabels := 100
var labels : array 1 .. maxLabels of labelType
var first := null
var vacant : int := 1
for i : 1 .. maxLabels - 1
    labels (i).link := i + 1
end for
procedure insert (newLabel : labelType)
    assert vacant not= null
    var spot := vacant
    vacant := labels (vacant).link
    labels (spot).name := newLabel.name
    if first = null or newLabel.name < labels (first).name then
        labels (spot).link := first
        first := spot
    else
        var previous := first
        var next := labels (first).link
        loop
            exit when next = null or
                newLabel.name < labels (next).name
            previous := next
            next := labels (next).link
        end loop
        labels (previous).link := spot
        labels (spot).link := next
    end if
end insert
procedure delete (oldLabel : labelType)
    var old : int := first
    var previous : int
    loop
        exit when old = null or labels (old).name = oldLabel.name
        previous := old
        old := labels (old).link
    end loop
    if old = null then
        put oldLabel.name, "not found"
        return
    elsif first = old then
        first := labels (old).link
    else
        labels (previous).link := labels (old).link
    end if
    labels (old).link := vacant
    vacant := old
end delete
procedure outputList
    var current := first
    loop
        exit when current = null
        put labels (current).name : 20
        current := labels (current).link
    end loop
end outputList
var newLabel, oldLabel : labelType
loop
    put "Enter name of label to be instered"
    get newLabel.name
    exit when (newLabel.name = 'fin') or (newLabel.name = 'Fin')
    insert (newLabel)
end loop
cls
outputList
loop
    put "Enter name of record to be deleted"
    get oldLabel.name
    exit when oldLabel.name = 'no'
    delete (oldLabel)
end loop
put "The remaining survivors are:"
outputList





Edit: i got the backup working. i just made a new procedure called backup with the same code as insert and put into a new array. but i notice one thing that is not working as i thought. you cannot put first and last name at one time because it counts it as two names. (labels) and thats not good...
Sponsor
Sponsor
Sponsor
sponsor
andrew.




PostPosted: Mon Jan 04, 2010 9:06 pm   Post subject: RE:Circular linked list help

Can't you put "get newLabel.name : *"? It should take in the spaces and everything up until 20 characters (because you set it to that). I haven't tried it though, but it should work.
imbored




PostPosted: Mon Jan 04, 2010 9:29 pm   Post subject: RE:Circular linked list help

yea i fixed that now thats why i opened a new thread because i totally re-programmed because this program is confusing for me.
Display posts from previous:   
   Index -> Programming, Turing -> Turing Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 3 Posts ]
Jump to:   


Style:  
Search: