1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
#include <iostream>
using namespace std;
struct Node
{
int data;
struct Node *next;
};
//insert a new node in an empty list
struct Node *insertInEmpty(struct Node *last, int new_data)
{
// if last is not null then list is not empty, so return
if (last != NULL)
return last;
// allocate memory for node
struct Node *temp = new Node;
// Assign the data.
temp -> data = new_data;
last = temp;
// Create the link.
last->next = last;
return last;
}
//insert new node at the beginning of the list
struct Node *insertAtBegin(struct Node *last, int new_data)
{
//if list is empty then add the node by calling insertInEmpty
if (last == NULL)
return insertInEmpty(last, new_data);
//else create a new node
struct Node *temp = new Node;
//set new data to node
temp -> data = new_data;
temp -> next = last -> next;
last -> next = temp;
return last;
}
//traverse the circular linked list
void traverseList(struct Node *last)
{
struct Node *p;
// If list is empty, return.
if (last == NULL)
{
cout << "Circular linked List is empty." << endl;
return;
}
p = last -> next; // Point to the first Node in the list.
// Traverse the list starting from first node until first node is visited again
do
{
cout << p -> data << "==>";
p = p -> next;
} while(p != last->next);
if(p == last->next)
cout<<p->data;
cout<<"\n\n";
}
void pointTO(struct Node *current, int count)
{
// CODES THAT I NEED HELP
}
int main()
{
int count;
struct Node *last = NULL;
struct Node *current = NULL;
last = insertInEmpty(last, 5);
last = insertAtBegin(last, 4);
last = insertAtBegin(last, 3);
last = insertAtBegin(last, 2);
last = insertAtBegin(last, 1);
last = insertAtBegin(last, 0);
cout<<"The circular linked list created is as follows:"<<endl;
traverseList(last);
for(int i; i < 5; i++)
{
cout<<"Enter number: ";
cin>>count;
pointTO(current,count);
cout<<"Current number: "<<current->data;
}
return 0;
}
|