Lab 3
Single Linked List
1. Create a class LinkedList, this class will use the structure
‘node’ for the creation of the linked list. Node is structure
declare globally and class define the private node variables and
public member functions as shown below.
struct node
{
int data;
node *next;
};
class LinkedList
{
private:
node *head;
public:
\\ member functions
};
Use constructor to initialize head to null and implement
following member functions:
Insertion :
// Insert a new node at the front of the list
void push(int new_data)
{
}
// insert new node after given node
void insertAfter(int given_data, int new_data)
{
}
//inserts a new node at the end of the list
void append(int new_data)
{
}
Deletion:
// Delete the last node in linked list
Void deleteLastNode()
// Delete the given node in linked list
Void deleteNode(int given_node)
Searching
Bool searchNode(int given_node)
{
// Search given node in the linked list
}
Sort the linked list
Void sortList()
{
//sort the list in ascending order
}
Write a menu-driven driver code to ask the user to perform one of the
functions and repeat this step till the user exits.
Doubly Linked List
2. Similar to above code, create a class called DoublyLinkedList,
struct node
{
int info;
struct node *next;
struct node *prev;
}*head;
class DoublyLinkedList {
public:
void create_list(int value); // pass the value and
create a node in DoublyLinkedList
void add_begin(int value); // insert node at beginning
void add_after(int value, int position); // insert node
after given position
void delete_element(int value); // delete particular
value node
bool search_element(int value); // search for the node
void display_dlist(); // display the DoublyLinkedList
void count(); // count the number of nodes in the
DoublyLinkedList
void reverse(); // reverse the complete list
void sortList(); // sort the list in ascending order
DoublyLinkedList ()
{
head = NULL;
}
};
Write a menu-driven driver code to ask the user to perform one of
the functions and repeat this step till the user exits.
Circular Doubly Linked List
3. Circular Doubly Linked List has properties of both doubly linked
list and circular linked list in which two consecutive elements
are linked or connected by previous and next pointer and the
last node points to first node by next pointer and also the
first node points to last node by previous pointer.
struct node
{
int info;
struct node *next;
struct node *prev;
};
class CircularDoublyLinkedList
{
public:
void create_list(int value); // create list
void insert_begin(int value); //insert at beginning and
update the list
void insert_last(int value); // insert at last and
update the list
void insert_pos(int value , int position); // insert at
particular position and update the list
void delete_pos(int position); // delete from particular
position and update the list
bool search(int value); // search the element in the
list
void display(); // display the list
void reverse(); // reverse the list
void sort(); // sort the list
CircularDoublyLinkedList() // constructor
{
}
};
Write a menu-driven driver code to ask the user to perform one of
the functions and repeat this step till the user exits.
4. Create a class called IntegerSet. Each object of class
IntegerSet can hold integers in the range 0 through 100. A set
is represented internally as an array of ones and zeros. Array
element a[ i ] is 1 if integer i is in the set. Array element
a[ j ] is 0 if integer j is not in the set. The default
constructor initializes a set to the so-called “empty set,”
i.e., a set whose array representation contains all zeros.
Provide member functions for the common set operations.
For example, provide a unionOfIntegerSets member function that
creates a third set which is the set-theoretic union of two
existing sets (i.e., an element of the third set’s array is
set to 1 if that element is 1 in either or both of the
existing sets, and an element of the third set’s array is set
to 0 if that element is 0 in each of the existing sets).
Provide an intersectionOfIntegerSets member function that
creates a third set which is the set-theoretic intersection of
two existing sets (i.e., an element of the third set’s array
is set to 0 if that element is 0 in either or both of the
existing sets, and an element of the third set’s array is set
to 1 if that element is 1 in each of the existing sets).
Provide an insertElement member function that inserts a new
integer k into a set (by setting a[k] to 1).
Provide a deleteElement member function that deletes integer m
(by setting a[m] to 0).
Provide a setPrint member function that prints a set as a list
of numbers separated by spaces. Print only those elements
that are present in the set (i.e., their position in the array
has a value of 1). Print --- for an empty set.
Provide an isEqualTo member function that determines if two
sets are equal.
Write a driver program to test your IntegerSet class.
Instantiate several IntegerSet objects. Test that all your
member functions work properly.