| | |
circular link list
Please support our C advertiser: Programming Forums - DaniWeb Sister Site
![]() |
•
•
Join Date: Aug 2004
Posts: 2
Reputation:
Solved Threads: 0
If you want to insert a node a node at a particular position, You must know the key value or the distance from head (or) tail. In both the cases you have to traverse the list. If the memory is not dynamic then, you can just add the distance*sizeofnode to the head and insert the node there.
If you don't consider the position of insertion, the answer becomes childish.
If you don't consider the position of insertion, the answer becomes childish.
•
•
Join Date: Aug 2004
Posts: 4
Reputation:
Solved Threads: 0
you can do it as follows, use a pointer to point to the last node " consider the list as a queue " of the list consider it's name is ((( last ))) and the node you want to add is ((( index ))) and define another pointer ((( temp )))
then :
temp = last;
last->pointer = index;
last = index;
last -> pointer = temp->pointer;
and then have fun...
:surprised
then :
temp = last;
last->pointer = index;
last = index;
last -> pointer = temp->pointer;
and then have fun...
:surprised Huh? It sounds like the assignment is, given a node in the target list, insert a new node into it. Otherwise you'd have an assignment like "insert in sorted order"
So, given a target node called 'target' and you want to insert 'toBeInserted' you generally need to:
A) Remove the toBeInserted node from whatever list its on
B) Add it to the new list before or after 'target', whichever is appropriate.
And the general steps for removal are (with the current node bing 'this'):
set prior's next to this next
set next's prior to be this' prior
set this' next to this
set this' prior to prior
and to insert before target you do something like this:
this' next is target
this' prior is target's prior
target's prior is this
this' prior's next is this
(to insert after is similar, but slightly different of course)
Hope that helps!
(note to moderator's: trying not to do the assignment, but to explain it. Walks a fine line, there)
So, given a target node called 'target' and you want to insert 'toBeInserted' you generally need to:
A) Remove the toBeInserted node from whatever list its on
B) Add it to the new list before or after 'target', whichever is appropriate.
And the general steps for removal are (with the current node bing 'this'):
set prior's next to this next
set next's prior to be this' prior
set this' next to this
set this' prior to prior
and to insert before target you do something like this:
this' next is target
this' prior is target's prior
target's prior is this
this' prior's next is this
(to insert after is similar, but slightly different of course)
Hope that helps!
(note to moderator's: trying not to do the assignment, but to explain it. Walks a fine line, there)
:-(
I guess I should stop answering questions with anything but Google answers. Here's what Google suggests for "circular linked list insertion algorithm":
http://www.greatsnakes.com/savannah/clist.asp
I guess I should stop answering questions with anything but Google answers. Here's what Google suggests for "circular linked list insertion algorithm":
http://www.greatsnakes.com/savannah/clist.asp
![]() |
Similar Threads
- Single Linked Circular Link List (Java)
- how to check circular link list (C++)
- how to delete a node in a link list (C++)
- Circular linked list (C)
Other Threads in the C Forum
- Previous Thread: Help in Input output C files
- Next Thread: C programming question
| Thread Tools | Search this Thread |
Tag cloud for C
#include adobe ansi array arrays asterisks binarysearch calculate centimeter changingto char convert copyimagefile cprogramme creafecopyofanytypeoffileinc database directory dynamic fflush file fork forloop framework getlasterror givemetehcodez grade graphics gtkgcurlcompiling hacking hardware histogram homework inches include incrementoperators input iso kernel km lazy linked linkedlist linux linuxsegmentationfault list lists locate logical_drives looping loopinsideloop. lowest match matrix microsoft motherboard multi mysql number opendocumentformat opensource owf pattern pdf performance pointer posix problem probleminc process program programming radix recursion recv research reversing scanf scripting segmentationfault sequential shape socket socketprograming spoonfeeding standard string strings structures student systemcall testing threads turboc unix user variable voidmain() wab windows.h windowsapi





