C++ :: Deleting Linked List Nodes Recursively
Jun 25, 2014
I am creating a Linear linked list in c++. I've written all the functions for it, but now I want to try and do them using recursion.
I managed to make functions for adding and displaying nodes on the list, but I am stuck on the function for removing nodes. First I want to try and write a function the removes the last item on the list. But for some reason my code isn't working properly.
Here is the code :
void removeLastItem(node * &head) {
if(!head) {
delete head;
head = NULL;
[Code] ....
NODE - My structure name
NEXT - The pointer to next element.
HEAD - The first (head) pointer.
The couts in the if statements are just for testing. In fact after I Run my program it does as it is supposed - enters the second if /b]case as many times as there are elements and then executes the first [b]if statement. But for some reason it does not delete the actual node.
View 2 Replies
ADVERTISEMENT
Mar 2, 2015
suppose that the class LinkedBag did not have the data member item_count_. Revise the method getCurrentSize so that it counts the number of nodes in the linked chain a. iterartively b. Recursively[
LinkedBag.h
template<class ItemType>
class LinkedBag : public BagInterface<ItemType> {
public:
LinkedBag();
LinkedBag(const LinkedBag<ItemType>& a_bag);
LinkedBag<ItemType>& operator=(const LinkedBag<ItemType>& right_hand_side);
virtual ~LinkedBag();
[code].....
View 6 Replies
View Related
Jul 23, 2014
I wrote function to add to elements in the list, but when I call printList function it returns me empty list ! I'm new with linked list in C
Output:
Empty list
List is empty add element at the begining
New node with packet num 245
List is not empty add element at the end
New node with packet num 486
Linked list: Empty
Main:
Code:
int main(){
struct node * start ;
start = NULL;
int i;
/*Check if list is empty*/
if(start == NULL){
printf("Empty list
[Code]...
View 2 Replies
View Related
Oct 17, 2014
Ok so I am having difficulty adding nodes to my linked list....
how to add a third node while keeping track of the address...Thats where I get lost..I don't know how to keep track of the addresses of the next node..
#include <iostream>
using namespace std;
typedef struct Node{
[Code]......
View 1 Replies
View Related
Apr 18, 2015
I'm simply trying to locate possible logic errors because if I could fill this list properly, I can finish my project very easily. This is just a small portion of a very immersive project.
I am trying to create a linked list that holds objects of type Location *. I have Location defined as
typedef struct location{
char *name;
char *longer;
char *shorter;
[Code].....
I wish to clarify but can not find where to edit the OP. I believe the list is still empty because I attempt to do a simple read through the list by accessing the head and then reassigning the list to the tail of the list. However, the program never enters the while loop
while(world !=0){
View 2 Replies
View Related
Mar 18, 2013
I'm having trouble deleting a character inputted by the user recursively..
1- Should I be doing it this way where it returns the character one by one to the console?
2- Is there a way actually rebuild the string to "delete" these occurances of the key?
//This program deletes a character inputted by the user recursively
#include <iostream>
using namespace std;
char find (char *a, char key)//Function gets passed array (but makes it a pointer) and key
[code]....
View 5 Replies
View Related
Oct 16, 2013
I created a linked list, but I wanted to make sure it was storing each word appropriately and going over the text. It compiles and runs, so I know it works. I'm just not sure if it's doing what I want...
Code:
#include <stdio.h>
#include <stdlib.h>
//creating the linked list
struct node {
[Code].....
View 3 Replies
View Related
Oct 25, 2013
I have a problem with inserting a node between two nodes.
Code:
#include <stdio.h>
#include <stdlib.h>
struct listelem {
int nbr;
struct listelem *next;
[Code] ....
View 8 Replies
View Related
Mar 27, 2014
I am coding a singly-linked list container. Of course, internally it uses Node<T>.
Question: what is the correct way to use the allocator given by the user? I ask, because I've read this on the rival C++ Reference:
std::list<T, A> allocates nodes of some internal type Node<T>, using the allocator std::allocator_traits<A>::rebind_alloc<Node<T>>, which is implemented in terms of A::rebind<Node<T>>::other if A is an std::allocator
[URL]...
The above doesn't seem right to do, because then what should pointer and const_pointer be?
using pointer = std::allocator_traits<Alloc>::pointer;
using const_pointer = std::allocator_traits<Alloc>::const_pointer;
// but we're using Alloc<Node<T>> not Alloc<T>
// so maybe do this?
using pointer = value_type *;
using const_pointer = const value_type *;
View 6 Replies
View Related
Nov 15, 2014
I've been working on this linked list priority queue . I know that the root of the problem is in my swapUp() function (swapping the positioning of two nodes based on their priority), because the list works great up until it is called. The seg fault is not actually being caused by swapUp(), it's being caused by peekAt(), which returns the element in the node at position n. But the error does not occur unless swapUp() is called first, so that is where the issue is (I think).
There is also a seg fault being caused in the destructor, which I believe may have the same root cause in swapUp().
PRIORITY QUEUE:
#ifndef JMF_PriorityQueue
#define JMF_PriorityQueue
#include <iostream>
#include <string>
template <typename T>
class PriorityQueue{
[Code] .....
Okay, so I've tried implementing SwapUp() in a different new way, but it's still giving me the same problem
template <typename T>
void PriorityQueue<T>::swapUp(Node * target){
Node * partner = target->next; //Partner = target next
[Code] .....
This is such an elementary logic problem I don't know why I'm having so much trouble with it.
View 4 Replies
View Related
Oct 19, 2013
I'm trying to sort the elements in a linked list which contain a variable amount of data in any given case. In the sample code, the code is more static, but I plan on adding it to much more dynamic code once I have it figured out. My main problem is that I am not sure how to sort the linked list while still keeping the correct pointers to the nodes. I thought about writing my own custom quick sort instead of using the C-standard library function, but how I would keep the pointers to the next nodes correct eluded me. Here is my code so far :
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
[Code]......
View 3 Replies
View Related
Apr 18, 2013
At the line number 65 that's my sort method first i sum up all the value in the nodes after that i want to sort the Nodes In ascending order but the method is not working ...
#include <iostream>
#include <conio.h>
using namespace std;
// Node Class
[Code] ....
View 3 Replies
View Related
Feb 8, 2014
How to randomly insert certain numbers into a linked list with 10 nodes. Meaning I want to put for example numbers 1 5 10 15 20 25 30 35 40 50 in random locations in the linked list.
View 1 Replies
View Related
Oct 10, 2014
I don't know why my code is not working. It's from line 249 - 266
void SLL::deleteDuplicate(){
Node* temp = head;
Node* p = temp;
[Code].....
View 1 Replies
View Related
Nov 21, 2014
I need to sort the Linked list from highest to lowest or in this case. The highest Bribe gets the higher priority on the list. I have looked all over the internet and have found some pretty decent examples but I still don't truly understand how to sort it. I think from looking at so many examples I have confused myself even more. I was reading about using Doubly Linked list but I don't even know if were allowed to use that.
1. The program runs perfectly at the moment. It prints out the list but does not sort it.
2. How to make sure that I am deleting the allocated memory correctly in the deconstructor.
Header File
#include <iostream>
#ifndef PERSON_H
#define PERSON_H
struct PersonRec;
class PersonList {
[Code] .....
View 6 Replies
View Related
Feb 28, 2013
I have been trying to swap two adjacent nodes for my linked list sort. Its not meant to be optimal, just meant to work. My problem is I either lose nodes or get Access Violation errors.
PHP Code:
void List::sortList() {
Node *current = _head;
Node *rightNode = NULL;
if (_head->_data > _head->_next->_data) {
current = _head;
rightNode = _head->_next;
[Code] .....
View 10 Replies
View Related
Mar 11, 2013
The code below is for reversing every k nodes of the linked list. While running the Program it crashes.
Code:
#include<stdio.h>
#include<stdlib.h>
struct node {
int info;
struct node *next;
[Code] ....
View 1 Replies
View Related
Jan 11, 2013
i want to make a program that accepts 15 items in a singly linked and sorts the nodes.
View 1 Replies
View Related
Mar 27, 2014
If I have a linked list, how can I delete it at the end of my program to free the memory taken up. I know I have to use delete but not sure how to use it in this case.
Here is the code that I have:
#include <iostream>
#include <cstdlib>
using namespace std;
struct Numlist {
int num; //Number
Numlist * next; //Pointer to the next node
[code]....
View 4 Replies
View Related
Apr 19, 2013
I have a struct with some select student information. My wish is to be able to have the user type in a surname from the list, and for that entry to be deleted. However I am slipping up for some reason.
Here is the start of my program showing my struct:
Code:
#include <stdio.h>
#include <string.h>
#define NAME_LEN 30
#define LINE_LEN 80
struct record {
[Code] ....
I get the following errors in my while loop as well as the if statement below that loop:
-invalid operands to binary !=
-invalid type of argument '->'
View 7 Replies
View Related
Mar 2, 2013
If p is a pointer pointing a node to be deleted, then what's wrong in the following code:
cout << "Do you want to delete this record? (y/n) ";
if (getch() == 'y' || getch() == 'Y'){// Delete record.
if (p == *ph){//If first node is to be deleted.
*ph = (*ph)->next;
delete p;
[Code] .....
View 2 Replies
View Related
Sep 19, 2013
I need to delete the Nth node from a doubly linked list. I know I just cant delete it out right. I have all the goodies including a templetized node class. This is the code we're given:
template <typename T>
void doublyLinkedList<T>::deleteKthElement(const int item) {
}
It accepts an int, and should go to the Nth node and delete it.
View 1 Replies
View Related
May 1, 2013
I am trying to delete a node from the end of a Linked List but I have some problems. Every node has it's unique code. Here is what I do:
1. Ask the user for the unique code of the node.
2. Ask him if he wants to change the data in it or delete the whole node.
3. If he chooses to delete it, I do this:
//let's say that temp1 points to the node
List *temp2 = temp1;
temp1 = temp1->next;
delete temp2;
And it's just not deleting the node.
View 2 Replies
View Related
Sep 8, 2014
I would like my function to return the data that was deleted. I have this code at the moment, where value_type is just an alias for int at the moment:
node::value_type linkedlist::removeFromHead(){
node* temp_head;
node::value_type data;
data = head_ptr->getData();
[Code] .....
When I try to use this function though, I get a segfault.
View 19 Replies
View Related
Feb 26, 2015
I created a bunch of nodes and I made each one before one another. Im having trouble adding another node to the last one.
#include <iostream>
using namespace std;
struct nodeType{
int info;
nodeType *link;
};
void printList(nodeType *head) {
nodeType *current = head;
[code]....
The node with the value of 400 is the node that has to be last.. How would that work?
View 3 Replies
View Related
Oct 22, 2014
I am working on a program where I sort elements into alphabetical order and then when one is less than the other I swap them. I first did it by swapping the data but they want me to swap the nodes instead and I am having trouble doing that.
Node *add_node( Node *list, const string &s ) {
struct Node *n = new struct Node;
n->word = s; // copy string s to word
n->next = 0;
// add node n to the list
// the list should always be in ascending alphabetical order
n->next = list;
list = n;
[Code] ....
View 2 Replies
View Related