Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class node{
- public:
- int data;
- node* next;
- node(int x = 0){
- data = x;
- next = nullptr;
- }
- };
- class linkedList{
- node* head;
- public:
- linkedList(){
- head = nullptr;
- }
- void AddElement(int x){
- node *newnode = new node(x);
- if(head == nullptr){
- head = newnode;
- }else{
- node *curr = head;
- while(curr->next != nullptr){
- curr = curr->next;
- }
- curr -> next = newnode;
- }
- }
- void PopListBack(){
- node *curr = head;
- if(curr -> next == nullptr){
- delete curr;
- }else{
- while(curr->next ->next != nullptr){
- curr = curr -> next;
- }
- delete curr->next;
- curr ->next = nullptr;
- }
- }
- void printList(){
- node *curr = head;
- while(curr != nullptr){
- cout << curr->data << " ";
- curr = curr->next;
- }
- cout << endl;
- }
- void removeAt(int index){
- if(index == 0){
- node *deletenode = head;
- head = head -> next;
- delete deletenode;
- }else{
- int cnt = 0;
- node *curr = head;
- while(curr && curr -> next ){
- cnt++;
- if(cnt == index){
- node* deletenode = curr -> next;
- curr -> next = curr -> next -> next;
- deletenode -> next = nullptr;
- delete deletenode;
- }
- curr = curr -> next;
- }
- }
- }
- void addat(int index, int x){
- node* newnode = new node(x);
- if(index == 0){
- newnode-> next = head;
- head = newnode;
- }else{
- int cnt = 0;
- node* curr = head;
- bool ok = 0;
- while(curr -> next){
- cnt++;
- if(cnt == index){
- node *Next = curr -> next;
- newnode -> next = Next;
- curr->next = newnode;
- ok = 1;
- }
- curr = curr -> next;
- }
- if(!ok){
- curr -> next = newnode;
- }
- }
- }
- int size(){
- node *curr = head;
- int cnt = 0;
- while(curr != nullptr){
- cnt++;
- curr = curr->next;
- }
- return cnt;
- }
- ~linkedList(){
- node *curr = head;
- while(curr != nullptr){
- node* Next = curr->next;
- delete curr;
- curr = Next;
- }
- }
- };
- int32_t main(){
- linkedList l;
- cout << "Add element 1 \n";
- l.AddElement(1);
- l.printList();
- cout << "Add element 2 \n";
- l.AddElement(2);
- l.printList();
- cout << "Add element 7 \n";
- l.AddElement(7);
- l.printList();
- cout << "Add element 8 \n";
- l.AddElement(8);
- l.printList();
- cout << "Remove the last element\n";
- l.PopListBack();
- l.printList();
- cout << "Add element 10\n";
- l.AddElement(10);
- l.printList();
- cout << "Add element 3 at position of index 2\n";
- l.addat(2, 3);
- l.printList();
- cout << "Remove element that have index 3\n";
- l.removeAt(3);
- l.printList();
- cout << "Size of linked list\n";
- cout << l.size() << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement