Sponsored Content
Top Forums Programming Linear linked list node delete Post 302443217 by achenle on Saturday 7th of August 2010 02:51:54 PM
Old 08-07-2010
In theory, if you have a pointer to node N, you can save the pointer to the next node (node N+1), then just copy the contents of node N+1 into the memory space occupied by node N. Then free the original node N+1. Like this, for a simple C structure:

Code:
void deleteNode( struct data *node )
{
    struct data *next = node->next;
    *node = *next;
    free( next );
    return;
}

That ignores any complications that could be caused by copying data, references to node N+1 from outside the list, and any side effects of freeing the original node N+1.

So, in practice, in all but trivial cases you'd never do that.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

List linked files

A perl script that displays the list of files which have multiple links..! ls -l shows number of links in a field. (0 Replies)
Discussion started by: aadi_uni
0 Replies

2. Programming

linked list node with pointer to struct

Suppose to have: struct Tstudent { string name, surname; int matriculation_num; }; struct Tnode { Tstudent* student; Tnodo* next; } L;I want to deference that "student" pointer. For example, I tried with: *(L->student).matriculation_numbut it not worked, as terminal... (4 Replies)
Discussion started by: Luke Bonham
4 Replies

3. Programming

I need C++ Code for single linked list

I need C++ Code for single linked list With operations as 1)insert at any position 2)delete any 3)change the data of any position (2 Replies)
Discussion started by: girija
2 Replies

4. Programming

c++ function to convert a linear list to circular list

hi all, i need a c++ function which converts a linear list to circular. presently i am working with two files. i.e., one linear list file. and one circular list file to do some operations. i thought it will be helpful if there is a function that converts a linear list to circular n undo the... (1 Reply)
Discussion started by: vidyaj
1 Replies

5. Programming

Help with linked list in C

i have this code typedef struct client_list { char *client_name; struct client_list * next; int client_socket_fd; } client; client *current, *head; head = NULL; char *h="test"; add_client(current, h, head, &client_socket_fd); ... (24 Replies)
Discussion started by: omega666
24 Replies

6. Programming

how do edit a node in a singly linked list in C?

If i have a linked list in C, how do I edit a node in it? Without ruining the whole list, by this i mean end up making it null or circular... (since it has to be linear and has to stop somewhere):wall: Can some one provide an example, making it have like 5 nodes, and then edit a string of the... (3 Replies)
Discussion started by: omega666
3 Replies

7. UNIX for Advanced & Expert Users

Unix linked-list placement

Hi, I am programming in kernel, and I want to use a double linked list that holds infos that every process could access and modify THIS list. So, I suppose it is a 'global' variable since every process(thread) can reach it, I am wondering where to put it? by changing some of the kernel files? (1 Reply)
Discussion started by: louisTan
1 Replies

8. Programming

Help with linked list.

#include<stdio.h> #include<stdlib.h> struct LinkedList { int val; struct LinkedList *next; }node; /*Creating a structure variable*/ typedef struct LinkedList Node; Node *start = NULL; int create(int i) { Node *temp = NULL; if (start == NULL) ... (5 Replies)
Discussion started by: prinsh
5 Replies

9. Programming

How to delete the last node in a linked list.?

How to delete the last node in a single linked list given only the pointer to last node ? Head node will not be given. (5 Replies)
Discussion started by: VSSajjan
5 Replies

10. Programming

How to reverse a linked list by traversing only once.?

Program to reverse a linked list by traversing only once. (1 Reply)
Discussion started by: VSSajjan
1 Replies
UList(3U)						    InterViews Reference Manual 						 UList(3U)

NAME
UList - circular, doubly-linked list class SYNOPSIS
#include <Unidraw/ulist.h> DESCRIPTION
UList implements a circular, doubly-linked list. The sentinel and each entry in the list are instances of the UList class, each containing a void pointer to the data they contain as well as pointers to the next and previous UList instance in the list. The sentinel UList instance is considered to represent the list. PUBLIC OPERATIONS
UList(void* = nil) Create a new UList instance, optionally supplying the value for the void pointer it stores. virtual ~UList() Delete the entire list. Normally the sentinel, which represents the list, is the entry that is deleted explicitly. Note that the data on the list, stored as void*'s, cannot be deleted in this manner. void Append(UList*) void Prepend(UList*) When performed on the sentinel, Append appends an element to the end of the list and Prepend prepends it to the beginning of the list. When performed on a UList instance other than the sentinel, Append has the effect of inserting its argument before the instance, while Prepend has the effect of inserting it after the instance. void Remove(UList*) Unlink the specified UList instance from the list it is in. The object on which this operation is called is irrelevant. void Delete(void*) Find the UList instance in this list containing the given void pointer, remove it from the list it is in, and delete it. UList* Find(void*) Return the UList instance in this list containing the given void pointer. UList* First() UList* Last() UList* End() UList* Next() UList* Prev() Return various UList instance in the list relative to this, i.e., as if it were the sentinel. End returns the sentinel (this) and is useful for detecting the end of an iteration through the list; the other operations are self-explanatory. boolean IsEmpty() Return whether or not the list has any elements. void* operator()() Return the void pointer that the UList stores. UList* operator[](int i) Return the ith UList in the list, where the next element is the first, etc. Unidraw 3 October 1990 UList(3U)
All times are GMT -4. The time now is 03:34 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy