Not quite what you are looking for? You may want to try: A Beginner's Guide to the Linked List Windows 7 Goodies in C++: Adding Custom Tasks to Jump Lists
Sign in home quick answers discussions features community help creatingalinkedlistproject Articles Languages C / C++ Language Howto
Article Browse Code Bugs / Suggestions Stats Revisions Alternatives Comments (64) View this article's Workspace Fork this Workspace Connect using Git Share About Article The article describes the fundamental theory about pointers and show how it helps to create linked list Type Article Licence CPOL First Posted 26 Mar 2008 Views 735,035 Downloads 9,222 Bookmarked 73 times VC6 C++ Windows Visual-Studio Dev , +
Next Rate this: How to create Linked list using C/C++ By Nasif M., 26 Mar 2008 Download Linked_list - 2.52 KB Introduction Linked list is one of the fundamental data structures, and can be used to implement other data structures. In a linked list there are different numbers of nodes. Each node is consists of two fields. The first field holds the value or data and the second field holds the reference to the next node or null if the linked list is empty. Figure: Linked list Pseudocode: Collapse | Copy Code Linkedlist Node { data // The value or data stored in the node next // A reference to the next node, null for last node } The singly-linked list is the easiest of the linked list, which has one link per node. Pointer To create linked list in C/C++ we must have a clear understanding about pointer. Now I will explain in brief what is pointer and how it works. A pointer is a variable that contains the address of a variable. The question is why we need pointer? Or why it is so powerful? The answer is they have been part of the C/C++ language and 4.47 (63 votes) articles How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 1 of 16 5/1/2014 6:31 PM Top News Wireless charger can power 40 mobile phones at once from 15 feet away Get the Insider News free each morning. Related Videos Related Articles A Beginner's Guide to the Linked List Windows 7 Goodies in C++: so we have to use it. Using pointer we can pass argument to the functions. Generally we pass them by value as a copy. So we cannot change them. But if we pass argument using pointer, we can modify them. To understand about pointers, we must know how computer store variable and its value. Now, I will show it here in a very simple way. Let us imagine that a computer memory is a long array and every array location has a distinct memory location. Collapse | Copy Code int a = 50 // initialize variable a Figure: Variable value store inside an array It is like a house which has an address and this house has only one room. So the full address is- Name of the house: a Name of the person/value who live here is: 50 House Number: 4010 If we want to change the person/value of this house, the conventional way is, type this code line Collapse | Copy Code a = 100 // new initialization But using pointer we can directly go to the memory location of 'a' and change the person/value of this house without disturbing a. This is the main point about pointer. Now the question is how we can use pointer. Type this code line: Collapse | Copy Code int *b; // declare pointer b We transfer the memory location of a to b. Collapse | Copy Code b = &a; // the unary operator & gives the address of an object Figure: Integer pointer b store the address of the integer variable a Now, we can change the value of a without accessing a. Collapse | Copy Code *b = 100; // change the value of 'a' using pointer b cout<<a; // show the output of 'a' When you order the computer to access to access *b, it reads the content inside b, which is actually the address of a then it will follow the address and comes to the house of a and read a`s content which is 50. Now the question is, if it is possible to read and change the content of b without accessing b? How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 2 of 16 5/1/2014 6:31 PM Adding Custom Tasks to Jump Lists SharePoint 2010 - Create List Definition and Instance Simple Windows Service Sample A Skip List in C# XListCtrl - A custom-draw list control with subitem formatting Task List Feature of Visual Studio Framework Pretty IE Toolbar in C# A Beginners Guide to Dialog Based Applications - Part One Multiple Edit Form for Sharepoint List Item VS Recent Project List Cleaner Falling Blocks Tool for Converting VC++2005 Project to Linux Makefile View the current library link order in a VC project Doubly-Linked List Implementation The CMake Build Manager The Basics of Linked Lists and Binary Trees StringBuilderPlus Improves Upon StringBuilder Converting anonymous types to any type HardLinks - Manage your library of common classes A permuted index (keyword- in-context) generator Related Research Learn Agile: Ten Tips for Launching and Testing High Quality Apps for the American Market Insider Secrets on API Security From Experts at Securosis [Webinar] The answer is affirmative. We can create a pointer of pointer. Collapse | Copy Code int **c; //declare a pointer to a pointer c = &b; //transfer the address of b to c So, we can change the value of a without disturbing variable a and pointer b. Collapse | Copy Code **c = 200; // change the value of a using pointer to a pointer c cout<<a; // show the output of a Now the total code is: Collapse | Copy Code #include<span class="code-keyword"><iostream></span> using namespace std;
int main() { int a = 50; // initialize integer variable a cout<<"The value of 'a': "<<a<<endl; // show the output of a
int * b; // declare an integer pointer b b = &a; // transfer the address of 'a' to pointer 'b' *b = 100; // change the value of 'a' using pointer 'b' cout<<"The value of 'a' using *b: "<<a<<endl;// show the output of a
int **c; // declare an integer pointer to pointer 'c' c = &b; // transfer the address of 'b' to pointer to pointer 'c' **c = 200; // change the value of 'a' using pointer to pointer 'c' cout<<"The value of 'a' using **c: "<<a<<endl;// show the output of a
return 0; } Output: This program will give you the inside view of the pointer. Collapse | Copy Code #include<span class="code-keyword"><iostream></span> using namespace std;
int main() { int a = 50; // initialize integer variable a cout<<"Value of 'a' = "<<a<<endl; // show the output of a cout<<"Memory address of 'a': "<<&a<<endl; // show the address of a cout<<endl;
int * b; // declare an integer pointer b b = &a; // transfer the address of 'a' to pointer 'b' cout<<"Value of Pointer 'b': "<<*b<<endl; // show the output of *b cout<<"Content of Pointer 'b': "<<b<<endl; // show the content of *b cout<<"Memory address of Pointer 'b': "<<&b<<endl; // show the address of *b cout<<endl;
int **c; // declare an integer pointer to a pointer c = &b; // transfer the address of 'b' to 'c' cout<<"Value of Pointer 'c': "<<**c<<endl; // show the output of **c cout<<"Content of Pointer 'c': "<<c<<endl; // show the content of **c cout<<"Memory address of Pointer 'c': "<<&c<<endl; // show the address of **c cout<<endl; return 0; } Output: How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 3 of 16 5/1/2014 6:31 PM Essential Keys to Mobile Usability How to Secure Your Software for the Mobile Apps Market We can observe that the memory address of a and the content of pointer b is same. The content of pointer c and the memory address of b is same. Linked list operation Now we have a clear view about pointer. So we are ready for creating linked list. Linked list structure Collapse | Copy Code typedef struct node { int data; // will store information node *next; // the reference to the next node }; First we create a structure node. It has two members and first is int data which will store the information and second is node *next which will hold the address of the next node. Linked list structure is complete so now we will create linked list. We can insert data in the linked list from 'front' and at the same time from 'back. Now we will examine how we can insert data from front in the linked list. 1) Insert from front At first initialize node type. Collapse | Copy Code node *head = NULL; //empty linked list Then we take the data input from the user and store in the node info variable. Create a temporary node node *temp and allocate space for it. Collapse | Copy Code node *temp; //create a temporary node temp = (node*)malloc(sizeof(node)); //allocate space for node Then place info to temp->data. So the first field of the node *temp is filled. Now temp->next must become a part of the remaining linked list (although now linked list is empty but imagine that we have a 2 node linked list and head is pointed at the front) So temp->next must copy the address of the *head (Because we want insert at first) and we also want that *head will always point at front. So *head must copy the address of the node *temp. How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 4 of 16 5/1/2014 6:31 PM Figure: Insert at first Collapse | Copy Code temp->data = info; // store data(first field) temp->next=head; // store the address of the pointer head(second field) head = temp; // transfer the address of 'temp' to 'head' 2) Traverse Now we want to see the information stored inside the linked list. We create node *temp1. Transfer the address of *head to *temp1. So *temp1 is also pointed at the front of the linked list. Linked list has 3 nodes. We can get the data from first node using temp1->data. To get data from second node, we shift *temp1 to the second node. Now we can get the data from second node. Collapse | Copy Code while( temp1!=NULL ) { cout<< temp1->data<<" ";// show the data in the linked list temp1 = temp1->next; // tranfer the address of 'temp->next' to 'temp' } Figure: Traverse This process will run until the linked lists next is NULL. 3) Insert from back Insert data from back is very similar to the insert from front in the linked list. Here the extra job is to find the last node of the linked list. How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 5 of 16 5/1/2014 6:31 PM Collapse | Copy Code node *temp1; // create a temporary node temp1=(node*)malloc(sizeof(node)); // allocate space for node temp1 = head; // transfer the address of 'head' to 'temp1' while(temp1->next!=NULL) // go to the last node temp1 = temp1->next;//tranfer the address of 'temp1->next' to 'temp1' Now, Create a temporary node node *temp and allocate space for it. Then place info to temp->data, so the first field of the node node *temp is filled. node *temp will be the last node of the linked list. For this reason, temp->next will be NULL. To create a connection between linked list and the new node, the last node of the existing linked list node *temp1`s second field temp1->next is pointed to node *temp. Figure: Insert at last Collapse | Copy Code node *temp; // create a temporary node temp = (node*)malloc(sizeof(node)); // allocate space for node temp->data = info; // store data(first field) temp->next = NULL; // second field will be null(last node) temp1->next = temp; // 'temp' node will be the last node 4) Insert after specified number of nodes Insert data in the linked list after specified number of node is a little bit complicated. But the idea is simple. Suppose, we want to add a node after 2nd position. So, the new node must be in 3rd position. The first step is to go the specified number of node. Let, node *temp1 is pointed to the 2nd node now. Collapse | Copy Code cout<<"ENTER THE NODE NUMBER:"; cin>>node_number; // take the node number from user
node *temp1; // create a temporary node temp1 = (node*)malloc(sizeof(node)); // allocate space for node temp1 = head;
for( int i = 1 ; i < node_number ; i++ ) { temp1 = temp1->next; // go to the next node
if( temp1 == NULL ) { cout<<node_number<<" node is not exist"<< endl; break; } } How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 6 of 16 5/1/2014 6:31 PM Now, Create a temporary node node *temp and allocate space for it. Then place info to temp->next , so the first field of the node node *temp is filled. Collapse | Copy Code node *temp; // create a temporary node temp = (node*)malloc(sizeof(node)); // allocate space for node temp->data = info; // store data(first field) To establish the connection between new node and the existing linked list, new nodes next must pointed to the 2nd nodes (temp1) next . The 2nd nodes (temp1) next must pointed to the new node(temp). Collapse | Copy Code temp->next = temp1->next; //transfer the address of temp1->next to temp->next temp1->next = temp; //transfer the address of temp to temp1->next
Figure: Insert after specified number of nodes 5) Delete from front Delete a node from linked list is relatively easy. First, we create node *temp. Transfer the address of *head to *temp. So *temp is pointed at the front of the linked list. We want to delete the first node. So transfer the address of temp->next to head so that it now pointed to the second node. Now free the space allocated for first node. Collapse | Copy Code node *temp; // create a temporary node temp = (node*)malloc(sizeof(node)); // allocate space for node temp = head; // transfer the address of 'head' to 'temp' head = temp->next; // transfer the address of 'temp->next' to 'head' free(temp); Figure: Delete at first node 6) Delete from back The last node`s next of the linked list always pointed to NULL. So when we will delete the last node, the previous node of last nodeis now pointed at NULL. So, we will track last node and previous node of the last node in the linked list. Create temporary node * temp1 and How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 7 of 16 5/1/2014 6:31 PM *old_temp. Collapse | Copy Code // create a temporary node node *temp1; temp1 = (node*)malloc(sizeof(node)); // allocate space for node temp1 = head; //transfer the address of head to temp1 node *old_temp; // create a temporary node old_temp = (node*)malloc(sizeof(node)); // allocate space for node
while(temp1->next!=NULL) // go to the last node { old_temp = temp1; // transfer the address of 'temp1' to 'old_temp' temp1 = temp1->next; // transfer the address of 'temp1->next' to 'temp1' } Now node *temp1 is now pointed at the last node and *old_temp is pointed at the previous node of the last node. Now rest of the work is very simple. Previous node of the last node old_temp will be NULL so it become the last node of the linked list. Free the space allocated for last lode. Collapse | Copy Code old_temp->next = NULL; // previous node of the last node is null free(temp1); Figure: Delete at first last 7) Delete specified number of node To delete a specified node in the linked list, we also require to find the specified node and previous node of the specified node. Create temporary node * temp1, *old_temp and allocate space for it. Take the input from user to know the number of the node. Collapse | Copy Code node *temp1; // create a temporary node temp1 = (node*)malloc(sizeof(node)); // allocate space for node temp1 = head; // transfer the address of 'head' to 'temp1'
node *old_temp; // create a temporary node old_temp = (node*)malloc(sizeof(node)); // allocate space for node old_temp = temp1; // transfer the address of 'temp1' to 'old_temp' Collapse | Copy Code cout<<"ENTER THE NODE NUMBER:"; cin>>node_number; // take location Collapse | Copy Code for( int i = 1 ; i < node_number ; i++ ) { old_temp = temp1; // store previous node temp1 = temp1->next; // store current node
} Now node *temp1 is now pointed at the specified node and *old_temp is pointed at the previous node of the specified node. The previous node of the specified node must connect to the rest of the linked list so we transfer the address of temp1->next to old_temp->next. How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 8 of 16 5/1/2014 6:31 PM Now free the space allocated for the specified node. Collapse | Copy Code old_temp->next = temp1->next; // transfer the address of 'temp1->next' to 'old_temp->next' free(temp1); 8) Sort nodes Linked list sorting is very simple. It is just like ordinary array sorting. First we create two temporary node node *temp1, *temp2 and allocate space for it. Transfer the address of first node to temp1 and address of second node to temp2. Now check if temp1->data is greater than temp2->data. If yes then exchange the data. Similarly, we perform this checking for all the nodes. Collapse | Copy Code node *temp1; // create a temporary node temp1 = (node*)malloc(sizeof(node)); // allocate space for node
node *temp2; // create a temporary node temp2 = (node*)malloc(sizeof(node)); // allocate space for node
int temp = 0; // store temporary data value
for( temp1 = head ; temp1!=NULL ; temp1 = temp1->next ) { for( temp2 = temp1->next ; temp2!=NULL ; temp2 = temp2->next ) { if( temp1->data > temp2->data ) { temp = temp1->data; temp1->data = temp2->data; temp2->data = temp; } } } Conclusion From the above discussions, I hope that everybody understands what linked list is and how we can create it. Now we can easily modify linked list according to our program requirement and try to use it for some real tasks. Those who still have some confusion about linked list, for them How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 9 of 16 5/1/2014 6:31 PM I will now tell you a story. Once upon a time, an old man lived in a small village. The old man was very wise and knew many solutions about different problems. He had also special powers so he could talk to genie and spirits, and sometimes they granted his wish by using their special powers. Oneday a witch with a broom came to talk with him and ask difficult and complex issues about global warming. He was very surprised but patiently explained her about green house model and gave her advice about using biofuel in her broom. The witch was very rude and greedy but she always liked to preach her nobility. So at the time of her departure, she wanted to grant only two wishes. The old man asked her why she only granted two wishes. He also reminded her that whenever genie comes he granted two wishes. What I am look like" the witch asked angrily, A blank check?" The old man brewed a plan. He told her that his first wish was to get a super computer. It is granted", the witch announced loudly. Then my second wish is to have another two wishes, the old man said very slowly. The witch was shell shocked. "It is also granted, the witch said and left the place very quickly with her broom. You may ask yourself why the witch was surprised. First, the witch granted two witches. One was fulfilled and for the second wish, the old man wanted another two wish. Whats the big idea? you can ask me, The witch can also fulfill this wish. Certainly, the witch can grant his wish. But what will happen if the old man wants to extend his second wish to another two wish set. So, the process will never end unless, the old man want to stop. The idea is same for linked list. First you have a node where you can imagine that data is the first wish and node*next is the second wish by which you can create second node just like first. This process will continue until you put NULL in the *next. Figure: It looks like the old man had lots of wish. References Wikipedia, the free encyclopedia. 1. Pointer in C, from P. Kanetkar. 2. License This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL) How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 10 of 16 5/1/2014 6:31 PM Nasif M. Bangladesh No Biography provided
Search this forum Go About the Author Article Top Comments and Discussions You must Sign In to use this message board. Profile popups Spacing Relaxed Noise Medium Layout OpenAll Per page 25 Update First Prev Next Member 10715040 6-Apr-14 11:03 how to solve this question Receive a list (L1) and a number (m) and to return another list (L2) that contains an exact copy of the first (m) elements from (L1). If the size of (L1) is less than or equal to (m), copy the whole list into (L2). In any case, L1 should remain unchanged Sign In View Thread Permalink Member 10579024 7-Feb-14 2:45 Sign In View Thread Permalink Member 10379678 4-Nov-13 8:00 Pretty difficult implementation but good learning over all. Sign In View Thread Permalink Eltaf Hussain 20-Oct-13 4:12 The traverse section does not display the linkedlist items but runs an infinite loop. Actually it does not find the null or Last linkedlist. copy a linked list to another list assuming i keep the as deep copy Good Great work! The traverse is run to infinite. How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 11 of 16 5/1/2014 6:31 PM
Can you please check what would be the problem. The code seems to be correct. Adeer Sign In View Thread Permalink Member 10150181 10-Jul-13 18:07 #include<stdio.h> #include<iostream.h> #include<conio.h> struct node { node *link; int info; }; node* create(int n) { node *a[10]; for(int i=0;i<n;i++) { node* a[i]=new node; } node *start=a[0]; for(i=0;i<n1;i++) { a[i]>link =a[i+1]; } a[n1]>link=NULL; node* ptr=start; while(ptr!=NULL) { cout<<"Enter data in the node"; cin>>ptr>info; ptr=ptr>link; } return start; } void main() {
} n i m getting two errors mainly constant expression required and 2nd 1 is cannot convert node* to node*[1], i m unable to get it .... any1's can help??? Sign In View Thread Permalink 1.00/5 (1 vote) vipink1berwal 19-Jun-13 22:04 awesome Sign In View Thread Permalink kfsone 2-Jun-13 9:02 While it's a good explanation on how linked lists operate, it utterly fails at being C++ (malloc instead of new, no constructors, etc) while having just enough non-list related bits of C++ to mean it doesn't help someone using C. Sign In View Thread Permalink Almo2001 31-Jan-14 9:11 He's right. It's not C++, really. linked list My vote of 5 This is C, not C++ Re: This is C, not C++ How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 12 of 16 5/1/2014 6:31 PM Sign In View Thread Permalink bilal78699 8-Mar-13 1:17 Nice Post for more info visit http://codesmesh.com/linked-list-and-dynamic-memory-allocation-in-c/[^] Sign In View Thread Permalink Mohamed Saleh 29-Jan-13 0:58 man you are simple a "genius" Sign In View Thread Permalink harish gyanani 23-Dec-12 1:12 i m using dev c++ i found two mistakes in this program first is stdlib.h is not included for malloc function second is typedef struct node { int data; // will store information node *next; // the reference to the next node }node; in above line you forget to write node before semicolon Sign In View Thread Permalink Steven Karapetyan 25-Nov-12 9:39 Beautiful sorting method Sign In View Thread Permalink Ha Dinh 25-Nov-12 9:33 I'm sorry that it's really bad implementation. I don't think you understand pointer. Here are several problems: 1. You declare: node *head = NULL. If you declare as a local variable, you MUST use pointer to pointer for all functions that work at front of linked list. 2. temp1 = (node*)malloc(sizeof(node)); // allocate space for node temp1 = head; //transfer the address of head to temp1. TOTALLY WRONG!!! If you assign (not transfer) temp1 to point to heads' pointee (temp1 = head), you don't have to allocate the pointee (memory). 3. Later, you free(temp1). It will be the same as free(previous head's pointee). This will lead to memory leak because of your allocating temp1. 4. Your "Delete from back" from back doesn't work when linked list is empty. 5. And too many problems...
Linked list, in fact, is just a small and simple implementation within a complex project. Keeping the code clean and simple is a MUST. The crucial point of linked list is declaring node *head as local or global variable.
Local variable has several problems such as: pointer to pointer, reversing linked list, nice post My vote of 5 2 small errors in main linked list program My vote of 5 Bad Implementation How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 13 of 16 5/1/2014 6:31 PM complicated...
Global variable fixes all the problems above. Below is DeleteAtEnd sample, using local variable:
void DeleteAtEnd(NODE* current) { NODE* previous; /* List is empty */ if (current->next == NULL) { free(current->next); return; }
while ( current->next != NULL) { previous = current; current = current->next; }
previous->next = NULL; free(current->next); } Sign In View Thread Permalink 5.00/5 (1 vote) mojgan.creative 26-Mar-13 21:53 hi(i should say my english is poor!i try to say what i mean...!) i think if some one wrote some thing like this article we should support her/him and guide and encourage them to write a better article and dont punish them! i really try to write english and say what i want i hope u understand sorry :( Sign In View Thread Permalink islam saied 20-Nov-12 21:01 i want to search in linked list to find item hwo can i make function to find item ??? Sign In View Thread Permalink Nurgazy Nazhimidinov 23-Oct-12 23:50 which sorting algorithm did you use? Sign In View Thread Permalink faraz9588 28-Sep-12 23:43 clearly defined Sign In View Thread Permalink seripigari 19-Sep-12 6:30 Re: Bad Implementation linked list in c sorting My vote of 5 My vote of 5 How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 14 of 16 5/1/2014 6:31 PM More clear, impossible Sign In View Thread Permalink booirror 15-Sep-12 6:30 8)sort nodes node *temp1; // create a temporary node temp1 = (node*)malloc(sizeof(node)); // allocate space for node
node *temp2; // create a temporary node temp2 = (node*)malloc(sizeof(node)); // allocate space for node I think that it needn't allocate memory. in fact, you are not using it at all!
right or not?(I am chinese,my english is poor.) Sign In View Thread Permalink sunilengkr 29-Aug-12 20:58 it is in simple format and very easy to understand due to diagrams... Sign In View Thread Permalink theahaiku 21-Aug-12 1:12 Thank you so much. Sign In View Thread Permalink smash13 15-Aug-12 7:10 Why do we need to create a Temp node for deleting from the front?
Why could we not just do this: node * temp = head; head = head->next; free(temp);
I tested it, appears to work as it should.. Sign In View Thread Permalink hakz.code 31-Jul-12 0:30 My doubts Sign In View Thread Permalink zaphoed 22-May-13 3:02 Hi hakz.code Can you please list your doubts and elaborate on them? Sign In View Thread Permalink hakz.code 31-Jul-12 0:29 suggestion or question My vote of 5 Linked Delete from front: question My vote of 3 Re: My vote of 3 Dangling memory How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 15 of 16 5/1/2014 6:31 PM Permalink | Advertise | Privacy | Mobile Web01 | 2.8.140430.2 | Last Updated 26 Mar 2008 Article Copyright 2008 by Nasif M. Everything else Copyright CodeProject, 1999-2014 Terms of Use Layout: fixed | fluid First of all the story regarding Wishes was amazing I have a doubt,when you are deleting the nodes,you are extra memory. For example: in the following code you have allocated temp.Then assigned address of node to temp.Ok now when you free the temp you are freeing the head node's memory.But the memory you have allocated for temp before assigning head to it is dangling now.
node *temp; // create a temporary node temp = (node*)malloc(sizeof(node)); // allocate space for node temp = head; // transfer the address of 'head' to 'temp' head = temp>next; // transfer the address of 'temp>next' to 'head' free(temp);
I was brushing up on linked lists.So please correct me if I am wrong! Thanks Sign In View Thread Permalink Last Visit: 31-Dec-99 18:00 Last Update: 1-May-14 9:11 Refresh 1 2 3 Next General News Suggestion Question Bug Answer Joke Rant Admin
How to create Linked list using C/C++ - CodeProject http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-u... 16 of 16 5/1/2014 6:31 PM