c++ linked list code example
Example 1: linkedlist implementation in c++
#include <iostream>
using namespace std;
struct node
{
int data;
node *next;
};
class linked_list
{
private:
node *head,*tail;
public:
linked_list()
{
head = NULL;
tail = NULL;
}
void add_node(int n)
{
node *tmp = new node;
tmp->data = n;
tmp->next = NULL;
if(head == NULL)
{
head = tmp;
tail = tmp;
}
else
{
tail->next = tmp;
tail = tail->next;
}
}
};
int main()
{
linked_list a;
a.add_node(1);
a.add_node(2);
return 0;
}
Example 2: cpp linked list
struct Node {
int data;
struct Node *next;
};
Example 3: doubly linked list python
class ListNode:
def __init__(self, value, prev=None, next=None):
self.prev = prev
self.value = value
self.next = next
class DoublyLinkedList:
def __init__(self, node=None):
self.head = node
self.tail = node
self.length = 1 if node is not None else 0
def __len__(self):
return self.length
def add_to_head(self, value):
new_node = ListNode(value, None, None)
self.length += 1
if not self.head and not self.tail:
self.head = new_node
self.tail = new_node
else:
new_node.next = self.head
self.head.prev = new_node
self.head = new_node
def remove_from_head(self):
value = self.head.value
self.delete(self.head)
return value
def add_to_tail(self, value):
new_node = ListNode(value, None, None)
self.length += 1
if not self.tail and not self.head:
self.tail = new_node
self.head = new_node
else:
new_node.prev = self.tail
self.tail.next = new_node
self.tail = new_node
def remove_from_tail(self):
value = self.tail.value
self.delete(self.tail)
return value
def move_to_front(self, node):
if node is self.head:
return
value = node.value
if node is self.tail:
self.remove_from_tail()
else:
node.delete()
self.length -= 1
self.add_to_head(value)
def move_to_end(self, node):
if node is self.tail:
return
value = node.value
if node is self.head:
self.remove_from_head()
self.add_to_tail(value)
else:
node.delete()
self.length -= 1
self.add_to_tail(value)
def delete(self, node):
self.length -= 1
if not self.head and not self.tail:
return
if self.head == self.tail:
self.head = None
self.tail = None
elif self.head == node:
self.head = node.next
node.delete()
elif self.tail == node:
self.tail = node.prev
node.delete()
else:
node.delete()
def get_max(self):
if not self.head:
return None
max_val = self.head.value
current = self.head
while current:
if current.value > max_val:
max_val = current.value
current = current.next
return max_val
Example 4: linked list in c++ stl
#include <bits/stdc++.h>
#include <iostream>
#include <list>
#include <iterator>
#define ll long long
using namespace std;
void showList(list <int> l){
list <int> :: iterator it;
for(it = l.begin(); it != l.end(); it++){
cout<<*it<<" ";
}
}
int main(){
list <int> l1;
list <int> l2;
for(int i=0; i<10; i++){
l1.push_back(i*2);
l2.push_back(i*3);
}
cout<<"content of list 1 is "<<endl;
showList(l1);
cout<<endl;
cout<<"content of list 2 is "<<endl;
showList(l2);
cout<<endl;
l1.reverse();
showList(l1);
cout<<endl;
l1.sort();
showList(l1);
cout<<endl;
l2.pop_front();
l2.pop_back();
l2.push_back(10);
l2.push_front(20);
return 0;
}
Example 5: java linked list iterator
import java.io.*;
import java.util.LinkedList;
import java.util.ListIterator;
public class LinkedListDemo {
public static void main(String args[])
{
LinkedList<String> list = new LinkedList<String>();
list.add("Geeks");
list.add("for");
list.add("Geeks");
list.add("10");
list.add("20");
System.out.println("LinkedList:" + list);
ListIterator list_Iter = list.listIterator(2);
System.out.println("The list is as follows:");
while(list_Iter.hasNext()){
System.out.println(list_Iter.next());
}
}
}
Example 6: cpp linked list
#include <bits/stdc++.h>
using namespace std;
int main() {
class Node {
public:
int data;
Node * next;
};
}