
Concept explainers
Explanation of Solution
Program code:
//include the required header files
#include <stdio.h>
#include <stdlib.h>
//Basic structure of node
struct node
{
//structure members
int data;
struct node * next;
};
// Function declaration
void createList(struct node **head, int n);
void displayList(struct node *head);
int count(struct node *head);
//define the main() function
int main()
{
//declare the required variables
int n, choice;
//set the head as null
struct node *head = NULL;
//iterate a while loop
while(choice != 0)
{
//prompt the choices
printf("--------------------------------------------\n");
printf(" CIRCULAR LINKED LIST PROGRAM \n");
printf("--------------------------------------------\n");
printf("1. Create List\n");
printf("2. Display list\n");
printf("3. Count nodes\n");
printf("0. Exit\n");
printf("--------------------------------------------\n");
//prompt the user to enter the choice
printf("Enter your choice : ");
//scan for the value
scanf("%d", &choice);
//switch cases
switch(choice)
{
//if the choice is 1
case 1:
//prompt the user to enter the number of nodes to create
printf("Enter total node to create: ");
//scan for the value
scanf("%d", &n);
//call the method createList()
createList(&head, n);
//break the case
break;
//if the choice is 2
case 2:
//call the method displayList()
displayList(head);
// Hold screen
getchar();
getchar();
//break the case
break;
case 3:
//print the number of nodes
printf("Total nodes = %d\n", count(head));
// Hold screen
getchar();
getchar();
//break the case
break;
case 0:
//print the statement
printf("Exiting from application");
exit(0);
//break from the loop
break;
default:
//print the statement
printf("Error! Invalid choice. Please choose between 0-3");
}
//print new line
printf("\n\n\n\n\n");
}
//return
return 0;
}
//define the function count()
int count(struct node *head)
{
//declare the required variables
int total = 0;
struct node *current = head;
// Iterate till end of list
do
{
//set the value of current
current = current->next;
//increment the total by 1
total++;
//end condition
} while (current != head);
// Return total nodes in list
return total;
}
//define the function createList()
void createList(struct node **head, int n)
{
//declare the required variables
int i, data;
struct node *prevNode, *newNode;
//set the nodes
prevNode = NULL;
newNode = NULL;
// Creates and links rest of the n-1 nodes
for(i=1; i<=n; i++)
{
// Create a new node
newNode = (struct node *) malloc(sizeof(struct node));
//prompt the user to enter the data
printf("Enter data of %d node: ", i);
//scan for the values
scanf("%d", &data);
//set the nodes
newNode->data = data;
newNode->next = NULL;
// Link the previous node with newly created node
if (prevNode != NULL)
prevNode->next = newNode;
// Move the previous node ahead
prevNode = newNode;
// Link head node if not linked
if (*head == NULL)
*head = newNode;
}
// Link last node with first node
prevNode->next = *head;
//print the statement
printf("\nCIRCULAR LINKED LIST CREATED SUCCESSFULLY\n");
}
// Display node content of circular linked list
void displayList(struct node *head)
{
//set the values
struct node *current;
int n = 1;
// Nothing to print in list
if(head == NULL)
{
//print the statement
printf("List is empty...

Want to see the full answer?
Check out a sample textbook solution
Chapter 3 Solutions
Data structures and algorithms in C++
- using r language Obtain a bootstrap t confidence interval estimate for the correlation statistic in Example 8.2 (law data in bootstrap).arrow_forwardusing r language Compute a jackknife estimate of the bias and the standard error of the correlation statistic in Example 8.2.arrow_forwardusing r languagearrow_forward
- using r languagearrow_forwardThe assignment here is to write an app using a database named CIT321 with a collection named students; we will provide a CSV file of the data. You need to use Vue.js to display 2 pages. You should know that this assignment is similar, all too similar in fact, to the cars4sale2 example in the lecture notes for Vue.js 2. You should study that program first. If you figure out cars4sale2, then program 6 will be extremely straightforward. It is not my intent do drop a ton of new material here in the last few days of class. The database contains 51 documents. The first rows of the CSV file look like this: sid last_name 1 Astaire first_name Humphrey CIT major hrs_attempted gpa_points 10 34 2 Bacall Katharine EET 40 128 3 Bergman Bette EET 42 97 4 Bogart Cary CIT 11 33 5 Brando James WEB 59 183 6 Cagney Marlon CIT 13 40 GPA is calculated as gpa_points divided by hrs_attempted. GPA points would have been arrived at by adding 4 points for each credit hour of A, 3 points for each credit hour of…arrow_forwardI need help to solve the following case, thank youarrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





