Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- main.cpp---------------------------------------------------------------------------------------
- #include "LinkList.h"
- #include <iostream>
- using namespace std;
- int main()
- {
- linkedlist obj;
- obj.pushfront(3);
- obj.pushfront(6);
- obj.pushfront(20);
- obj.popback();
- obj.pushfront(5);
- obj.pushback(12);
- obj.popfront();
- obj.deletel(2);
- obj.printlistfromfront();
- obj.printlistfromtail();
- obj.size();
- cin.get();
- return 0;
- }
- Node.h--------------------------------------------------------------------------------------------
- #include <cstddef>
- #include <iostream>
- using namespace std;
- class Node{
- public:
- int item;
- Node *next;
- Node *prev;
- friend ostream& operator<< (ostream& print, const Node &value){
- return print << value.item;
- };
- Node(int data){
- item = data;
- next=NULL; //set it = to NULL by default so it doesnt hold a random value
- prev =NULL; //set it = to NULL by default so it doesnt hold a random value
- }
- };
- LinkList.h------------------------------------------------------------------------------
- #include "Node.h"
- #include <cstddef>
- #include<iostream>
- using namespace std;
- class linkedlist{
- public:
- linkedlist(){
- front=NULL;
- tail=NULL;
- };
- void pushfront(int item){{
- if (front == NULL){
- front =tail = new Node(item);
- front -> next = NULL;
- tail -> prev = NULL;
- }
- else //or else
- {
- Node *temp;
- temp = new Node(item);
- temp -> next = front;
- front -> prev = temp;
- front = temp;
- }}
- }
- void popfront (){
- if (front == NULL)
- return;
- else
- {
- Node *temp;
- temp = front;
- front = front -> next;
- front -> prev = NULL;
- front -> next = (temp-> next)->next;
- delete temp;
- }
- }
- void pushback( int item){
- if (front == NULL){
- front = tail = new Node(item);
- front -> next = NULL;
- tail -> prev = NULL;
- }
- else
- {
- Node *temp = new Node(item);
- tail -> next = temp;
- temp -> prev = tail;
- tail = temp;
- }
- }
- void popback(){
- Node* temp = tail;
- (temp -> prev) -> next = NULL;
- tail = temp -> prev;
- delete temp;
- }
- int size(){
- Node* traverse;
- int sizel = 0;
- traverse = front;
- while (traverse != NULL){
- traverse = traverse -> next;
- sizel++;
- }
- cout << "The size of the list is: "<<sizel<<endl;
- return sizel;
- }
- void deletel(int ith){
- Node* traversle;
- int sizel = 0;
- traversle = front;
- while (traversle != NULL){
- traversle = traversle -> next;
- sizel++;
- }
- if (ith <= sizel){
- if (front == NULL && tail == NULL){
- cout<<"there are no nodes to delete.";
- }
- if ((front -> next == NULL) && (tail -> prev == NULL)){
- front = tail = NULL;}
- else{
- int i = 0;
- Node *traverse;
- traverse = front;
- while (i < ith ){
- traverse = traverse -> next;
- i++;
- }
- (traverse -> next) -> prev = traverse -> prev;
- (traverse -> prev) -> next = traverse -> next;
- }
- }
- else{
- cout << "There is no such node" << endl;
- }
- }
- void printlistfromfront(){
- Node* traverse;
- traverse = front;
- cout << "Items starting from the front of the list are:\a ";
- while (traverse != NULL){
- cout <<" " << *traverse;
- traverse = traverse -> next;
- }
- cout << endl;
- }
- void printlistfromtail(){
- Node *traversle;
- traversle = tail;
- cout << "Items from the end of the list, going backwards are:\a ";
- while (traversle != NULL){
- cout << " " << *traversle;
- traversle = traversle -> prev;
- }
- cout << endl;
- }
- private:
- Node *front;
- Node *tail;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement