111
Alexmegawin
c_cpp
3 years ago
2.2 kB
6
Indexable
#include <iostream>
using namespace std;
class Node {
public:
    int data;
    Node* next;
};
class List {
private:
    Node* head;
public:
    List() {
        head = NULL;
    }
    void addNode(int value) {
        Node* newNode = new Node();
        newNode->data = value;
        newNode->next = NULL;
        if (head == NULL) {
            head = newNode;
        }
        else {
            Node* temp = head;
            while (temp->next != NULL) {
                temp = temp->next;
            }
            temp->next = newNode;
        }
    }
    int getNodeValue(int index) {
        if (head == NULL) {
            cout << "List is empty" << endl;
            return -1;
        }
        Node* temp = head;
        int count = 0;
        while (temp != NULL) {
            if (count == index) {
                return temp->data;
            }
            count++;
            temp = temp->next;
        }
        cout << "Index out of range" << endl;
        return -1;
    }
    void deleteNode(int index) {
        if (head == NULL) {
            cout << "List is empty" << endl;
            return;
        }
        Node* temp = head;
        if (index == 0) {
            head = head->next;
            delete temp;
            return;
        }
        int count = 0;
        while (temp != NULL && count < index - 1) {
            temp = temp->next;
            count++;
        }
        if (temp == NULL || temp->next == NULL) {
            cout << "Index out of range" << endl;
            return;
        }
        Node* nextNode = temp->next->next;
        delete temp->next;
        temp->next = nextNode;
    }
};
int main() {
    List list;
    int n, f;
    cin >> n;
    for (int i = 0; i < n; i++) 
    {
        cout << "Enter number ";
        cin >> f;
        list.addNode(f);
    }
    
    /*list.addNode(10);
    list.addNode(15);*/
    cout << "Value at index 1: " << list.getNodeValue(0) << endl;
    list.deleteNode(0);
    cout << "Value at index 1 after deletion: " << list.getNodeValue(0) << endl;
    return 0;
}Editor is loading...