My Interpretation of a c++ Linked list enjoy!
list.cpp
#include "list.h"
void linkedlist::iniNode(struct Node *head, int n)
{
head->data = n;
head->next = NULL;
}
void linkedlist::addNode(struct Node *head, int n)
{
Node *newNode = new Node();
newNode->data = n;
newNode->next = NULL;
Node *cur = head;
while(cur)
{
if(cur->next == NULL)
{
cur->next = newNode;
<span class="hiddenGrammarError" pre="">return;
}
cur</span> = cur->next;
}
}
struct Node *linkedlist::searchNode(struct Node *head, int n)
{
Node *cur = head;
while(cur)
{
if(cur->data == n)
return cur;
cur = cur->next;
}
return NULL;
}
bool linkedlist::delNode(struct Node **head, Node *delPtr)
{
Node *cur = *head;
if(delPtr == *head)
{
*head = cur->next;
delete delPtr;
return true;
}
while(cur)
{
if(cur->next == delPtr)
{
cur->next = delPtr->next;
delete delPtr;
return true;
}
cur = cur->next;
}
return false;
}
void linkedlist::printList(struct Node *head)
{
Node *cur = head->next;
while(cur)
{
cout << cur->data << '\n';
cur = cur->next;
}
}
list.h
#include <Windows.h>
#include <iostream>
using namespace::std;
struct Node{
int data;
Node *next;
};
class linkedlist
{
public:
void iniNode(struct Node *, int);
void addNode(struct Node *, int);
bool delNode(struct Node **, Node *);
void printList(struct Node *);
struct Node *searchNode(struct Node *, int n);
};
loader.cpp
#include "list.h"
int main()
{
linkedlist list = linkedlist();
Node *head = new Node();
list.addNode(head, 10);
list.addNode(head, 20);
list.printList(head);
list.delNode(&head, list.searchNode(head,10));
list.printList(head);
return 0;
}