0% found this document useful (0 votes)
77 views

DSA - Lab: Submitted To: Mam Rabia Arshad SUBMITTED BY: Muhammad Bilal

This C++ program implements functions to perform operations on a singly linked list including insertion, deletion, display, and counting of elements. The main function contains a menu that allows the user to choose an operation and call the corresponding function to insert a new node, delete a node by position, display all nodes, or count the number of nodes in the list. Each function implements the operation by traversing the list and modifying pointers as needed.

Uploaded by

Bilal Alone
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views

DSA - Lab: Submitted To: Mam Rabia Arshad SUBMITTED BY: Muhammad Bilal

This C++ program implements functions to perform operations on a singly linked list including insertion, deletion, display, and counting of elements. The main function contains a menu that allows the user to choose an operation and call the corresponding function to insert a new node, delete a node by position, display all nodes, or count the number of nodes in the list. Each function implements the operation by traversing the list and modifying pointers as needed.

Uploaded by

Bilal Alone
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

DSA_lab

Tasks lab6

SUBMITTED TO: Mam Rabia Arshad

SUBMITTED BY: Muhammad Bilal

Software Engineering Dept.


19-SE-18
19-se-18@students.uettaxila.edu.pk
Question No.1

Program for inserting deleting and elements in link list.

#include <iostream>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>

using namespace std;

struct node {
int value;
struct node *next;
};

void insert();
void display();
void delete_node();
int count();

typedef struct node DATA_NODE;

DATA_NODE *head_node, *first_node, *temp_node = 0, *prev_node, next_node;


int data;
int main() {
int option = 0;

cout << "Singly Linked List C++ Example - All Operations\n";

while (option < 5) {

cout << "\nOptions\n";


cout << "1 ) Insert into Linked List \n";
cout << "2 ) Delete from Linked List \n";
cout << "3 ) Display Linked List\n";
cout << "4 ) Count Linked List\n";
cout << "Others : Exit()\n";
cout << "Enter your option: ";
scanf("%d", &option);
switch (option) {
case 1:
insert();
break;
case 2:
delete_node();
break;
case 3:
display();
break;
case 4:
count();
break;
default:
break;
}
}

return 0;
}

void insert() {
cout << "\nEnter Element for Insert Linked List : \n";
scanf("%d", &data);

temp_node = (DATA_NODE *) malloc(sizeof (DATA_NODE));

temp_node->value = data;

if (first_node == 0) {
first_node = temp_node;
} else {
head_node->next = temp_node;
}
temp_node->next = 0;
head_node = temp_node;
fflush(stdin);
}

void delete_node() {
int countvalue, pos, i = 0;
countvalue = count();
temp_node = first_node;
cout << "\nDisplay Linked List : \n";

cout << "\nEnter Position for Delete Element : \n";


scanf("%d", &pos);

if (pos > 0 && pos <= countvalue) {


if (pos == 1) {
temp_node = temp_node -> next;
first_node = temp_node;
cout << "\nDeleted Successfully \n\n";
} else {
while (temp_node != 0) {
if (i == (pos - 1)) {
prev_node->next = temp_node->next;
if (i == (countvalue - 1)) {
head_node = prev_node;
}
cout << "\nDeleted Successfully \n\n";
break;
} else {
i++;
prev_node = temp_node;
temp_node = temp_node -> next;
}
}
}
} else
cout << "\nInvalid Position \n\n";
}

void display() {
int count = 0;
temp_node = first_node;
cout << "\nDisplay Linked List : \n";
while (temp_node != 0) {
cout << "# " << temp_node->value;
count++;
temp_node = temp_node -> next;
}
cout << "\nNo Of Items In Linked List : %d " << count;
}

int count() {
int count = 0;
temp_node = first_node;
while (temp_node != 0) {
count++;
temp_node = temp_node -> next;
}
cout << "\nNo Of Items In Linked List : %d " << count;
return count;
}
Output:

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy