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

Struct Int: Null Null

The document defines a linked list data structure with methods for creating nodes, inserting nodes at different positions, displaying the list, and deleting nodes from different positions. It includes methods for inserting and deleting nodes from the beginning and end of the list, as well as inserting and deleting nodes at a given position within the list.

Uploaded by

rajpoot
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views

Struct Int: Null Null

The document defines a linked list data structure with methods for creating nodes, inserting nodes at different positions, displaying the list, and deleting nodes from different positions. It includes methods for inserting and deleting nodes from the beginning and end of the list, as well as inserting and deleting nodes at a given position within the list.

Uploaded by

rajpoot
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

struct node

{
int data;
node *next;
};

class list
{
Private:
node *head, *tail;
public:
list()
{
head=NULL;
tail=NULL;
}
};

void createnode(int value)


{
node *temp=new node;
temp->data=value;
temp->next=NULL;
if(head==NULL)
{
head=temp;
tail=temp;
temp=NULL;
}
else
{
tail->next=temp;
tail=temp;
}
}

void display()
{
node *temp=new node;
temp=head;
while(temp!=NULL)
{
cout<<temp->data<<"\t";
temp=temp->next;
}
}

void insert_start(int value)


{
node *temp=new node;
temp->data=value;
temp->next=head;
head=temp;
}

void insert_position(int pos, int value)


{
node *pre=new node;
node *cur=new node;
node *temp=new node;
cur=head;
for(int i=1;i<pos;i++)
{
pre=cur;
cur=cur->next;
}
temp->data=value;
pre->next=temp;
temp->next=cur;
}
void delete_first()
{
node *temp=new node;
temp=head;
head=head->next;
delete temp;
}

void delete_last()
{
node *current=new node;
node *previous=new node;
current=head;
while(current->next!=NULL)
{
previous=current;
current=current->next;
}
tail=previous;
previous->next=NULL;
delete current;
}

void delete_position(int pos)


{
node *current=new node;
node *previous=new node;
current=head;
for(int i=1;i<pos;i++)
{
previous=current;
current=current->next;
}
previous->next=current->next;
}
void insertFirst(int key, int data) {

//create a link

struct node *link = (struct node*) malloc(sizeof(struct node));

link->key = key;

link->data = data;

if(isEmpty()) {

//make it the last link

last = link;

} else {

//update first prev link

head->prev = link;

//point it to old first link

link->next = head;

//point first to new first link

head = link;

//delete first item

struct node* deleteFirst() {

//save reference to first link

struct node *tempLink = head;

//if only one link

if(head->next == NULL) {
last = NULL;

} else {

head->next->prev = NULL;

head = head->next;

//return the deleted link

return tempLink;

//insert link at the last location

void insertLast(int key, int data) {

//create a link

struct node *link = (struct node*) malloc(sizeof(struct node));

link->key = key;

link->data = data;

if(isEmpty()) {

//make it the last link

last = link;

} else {

//make link a new last link

last->next = link;

//mark old last node as prev of new link

link->prev = last;

//point last to new last node

last = link;}

You might also like