Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // AUTHOR : FUEANTA
- // DATE : 31 OCT, 2016
- #include "iostream"
- using namespace std;
- struct node {
- int number;
- node *next;
- };
- bool IsEmpty(node *);
- int menu();
- void insertAsFirstElement(node *&, node *&, int);
- void insert(node *&, node *&, int);
- void remove(node *&, node *&);
- void showList(node *);
- int main() {
- node *head = NULL;
- node *tail = NULL;
- int choice;
- int num;
- do {
- choice = menu();
- switch(choice) {
- case 1 : cout << "Please enter a number: ";
- cin >> num;
- insert(head, tail, num);
- break;
- case 2 : remove(head, tail);
- break;
- case 3 : showList(head);
- break;
- default: cout << "\nChoose 4 to exit." << endl;
- break;
- }
- } while (choice != '4');
- return 0;
- }
- bool IsEmpty(node *head) {
- if (head == NULL)
- return true;
- else return false;
- }
- int menu() {
- int choice;
- cout << "\n**MENU**\n" << endl;
- cout << "1. Insert an item." << endl;
- cout << "2. Delete an item." << endl;
- cout << "3. Show the list." << endl;
- cout << "4. Exit." << endl;
- cout << "\nCHOICE : ";
- cin >> choice; return choice;
- }
- void insertAsFirstElement(node *&head, node *&tail, int num) {
- node *temp = new node;
- temp->number = num;
- temp->next = NULL;
- head = temp;
- tail = temp;
- }
- void insert(node *&head, node *&tail, int num) {
- if (IsEmpty(head))
- insertAsFirstElement(head, tail, num);
- else {
- node *temp = new node;
- temp->number = num;
- temp->next = NULL;
- tail->next = temp;
- tail = temp;
- }
- }
- void remove(node *&head, node *&tail) {
- if (IsEmpty(head))
- cout << "\nThe list is already empty." << endl;
- else if (head == tail) {
- delete head;
- cout << "\nNode removed." << endl;
- head = tail = NULL;
- }
- else {
- node *temp = head;
- head = head->next;
- delete temp;
- cout << "\nNode removed." << endl;
- }
- }
- void showList(node *current) {
- if (IsEmpty(current))
- cout << "\nNothing to show. The list is empty." << endl;
- else {
- cout << "\nThe list contains : ";
- while (current != NULL) {
- cout << current->number << " ";
- current = current->next;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment