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

CS-253 Data Structures and Algorithms-Assignment 1

The document discusses C++ programs to perform various operations on singly linked lists including creating and displaying a linked list, finding the middle element, accessing the nth node, and inserting a new node at a given position.

Uploaded by

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

CS-253 Data Structures and Algorithms-Assignment 1

The document discusses C++ programs to perform various operations on singly linked lists including creating and displaying a linked list, finding the middle element, accessing the nth node, and inserting a new node at a given position.

Uploaded by

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

CS-253 Data Structures and Algorithms

Assignment 1: Linked Lists

Name: Arham Siddiqui


CMS ID: 428887
Instructor: Engr. Naema Asif
1. Write a C++ program to create and display a Singly Linked List. Test Data:
The list contains the data entered: 12 9 6 4 2 1

CODE:
#include<iostream>
using namespace std;

class node{

public:
int value=0;
node* next;

node(int value){
this->value =value;
next = nullptr;
}
};

class linkedlist{
private:
node* head= NULL;

public:

void InsertAtHead (int value) {


node *newnode= new node(value);
newnode->next = head;
head = newnode;
}

void display (){


node * temp=head;
while (temp!=NULL){
cout << temp->value<<" ";
temp=temp->next;
}
cout<<endl;
}

};

int main (){


linkedlist list;

list.InsertAtHead(1);
list.InsertAtHead(2);
list.InsertAtHead(4);
list.InsertAtHead(6);
list.InsertAtHead(9);
list.InsertAtHead(12);

cout<< "The list contains the following data: ";

list.display();

return 0;
}

Output:
2. Write a C++ program to find the middle element of a given Linked List.
Test Data: Original list: 7 5 3 1
Middle element of the said list: 3
Original list: 9 7 5 3 1
Middle element of the said list: 5

CODE:

#include<iostream>
using namespace std;

class node{

public:
int value=0;
node* next;

node(int value){
this->value =value;
next = nullptr;
}
};

class linkedlist{
private:
node* head= NULL;

public:

void InsertAtHead (int value) {


node *newnode= new node(value);
newnode->next = head;
head = newnode;
}

void display (){


node * temp=head;
while (temp!=NULL){
cout << temp->value<<" ";
temp=temp->next;
}
cout<<endl;
}

void getmiddle (){


int count=0;
node*temp=head;
while (temp!=NULL){
temp=temp->next;
count++;
}
count/=2;
int location=0;
temp=head;
while (location!=count){
temp=temp->next;
location++;
}

cout<<temp->value<<endl;

};

int main (){


linkedlist list;

list.InsertAtHead(1);
list.InsertAtHead(3);
list.InsertAtHead(5);
list.InsertAtHead(7);

cout<< "The list contains the following data: ";

list.display();
list.getmiddle();
//list.display();
return 0;
}

OUTPUT:
3. Write a C++ program to get Nth node in a given Singly Linked List.
Test Data:
Original list: 7 5 3 1
Position: 1 Value: 7
Position: 2 Value: 5
Position: 3 Value: 3
Position: 4 Value: 1

CODE:
#include<iostream>
using namespace std;

class node{

public:
int value=0;
node* next;

node(int value){
this->value =value;
next = nullptr;
}
};

class linkedlist{
private:
node* head= NULL;

public:

void InsertAtHead (int value) {


node *newnode= new node(value);
newnode->next = head;
head = newnode;
}

void display (){


node * temp=head;
while (temp!=NULL){
cout << temp->value<<" ";
temp=temp->next;
}
cout<<endl;
}

void getnode(int location){


node*temp=head;
int i=1;
while (i!=location){
temp=temp->next;
i++;
}
cout<<temp->value<<endl;

};

int main (){


linkedlist list;

list.InsertAtHead(1);
list.InsertAtHead(3);
list.InsertAtHead(5);
list.InsertAtHead(7);

cout<< "The list contains the following data: ";

list.display();
cout<< "Position 3: ";
list.getnode(3);

return 0;
}
OUTPUT:
4. Write a C++ program to insert a new node at any position of a Singly Linked List.
Test Data:
Original list: 7 5 3 1
Position: 1, Value: 12
Updated list: 12 7 5 3 1

CODE:
#include<iostream>
using namespace std;

class node{

public:
int value=0;
node* next;

node(int value){
this->value =value;
next = nullptr;
}
};

class linkedlist{
private:
node* head= NULL;

public:

void InsertAtHead (int value) {


node *newnode= new node(value);
newnode->next = head;
head = newnode;
}

void display (){


node * temp=head;
while (temp!=NULL){
cout << temp->value<<" ";
temp=temp->next;
}
cout<<endl;
}

void InsertNewNode (int location, int value){


node*temp=head;
int i=0;

if (location==1){
node *newnode= new node(value);
newnode->next = head;
head = newnode;
}

while (i<location-2){
temp=temp->next;
i++;
}
node* newnode= new node(value);
newnode->next=temp->next;
temp->next=newnode;
}

};

int main (){


linkedlist list;

list.InsertAtHead(1);
list.InsertAtHead(3);
list.InsertAtHead(5);
list.InsertAtHead(7);
list.InsertAtHead(17);
list.InsertAtHead(78);

cout<< "The list contains the following data: ";

list.display();
list.InsertNewNode(3,19);
list.display();

return 0;
}

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