23-NTU-CS-1170 (Lab 4)
23-NTU-CS-1170 (Lab 4)
Department of Computer
Science
Subject:
DSA
Submitted to:
Sir ARSAL
Submitted by:
Maha Ather
Reg number:
23-NTU-CS-1170
Lab no.:
4
Semester:3
Question 1:
Code:
class node{
private:
int data; //data
node* next; //pointer which points to next node
node* prev;
public:
//set data
void setdata(int data){
this->data=data;
}
//set next
void setnext(node* next){
this->next=next;
}
//set prev
void setprev(node* prev){
this->prev=prev;
}
//get data
int getdata(){
return data;
}
//get next
node* getnext(){
return next;
}
//get prev
node* getprev(){
return prev;
}
};
Question 2:
Code:
class doublylist{
private:
node* first;
node* last;
public:
doublelist(){
first=nullptr;
last=nullptr;
}
void insertdata(int value){
node* newnode=new node();
newnode->setdata(value);
if(first==NULL){
first=newnode;
last=newnode;
newnode->setnext(nullptr);
newnode->setprev(nullptr);
}else{
newnode->setnext(first);
newnode->setprev(nullptr);
first->setprev(newnode);
first = newnode;
}
}
void deletelist(int value){
if(first==NULL){
cout<<"List is empty"<<endl;
return;
}
//delete at specific node
if (first->getdata()==value) {
node* temp = first;
first = first->getnext();
if(first == NULL) {
last = NULL;
} else {
first->setprev(NULL);
}
delete temp;
return;
}
}
void display(){
node* temp=first;
while(temp!=NULL){
cout<<temp->getdata()<<"->";
temp=temp->getnext();
}
}
};
Question 3:
Code:
int main(){
doublylist* list=new doublylist();
list->insertdata(89);
list->insertdata(78);
list->insertdata(11);
list->insertdata(45);
list->deletelist(45);
list->display();
return 0;
}
Output: