Data Structures and Algorithms in C++
Data Structures and Algorithms in C++
2nd Edition
ISBN: 9780470383278
Author: Michael T. Goodrich
Publisher: Wiley, John & Sons, Incorporated
bartleby

Concept explainers

Expert Solution & Answer
Book Icon
Chapter 3, Problem 17R

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...

Blurred answer
Students have asked these similar questions
1.) Consider the problem of determining whether a DFA and a regular expression are equivalent. Express this problem as a language and show that it is decidable. ii) Let ALLDFA = {(A)| A is a DFA and L(A) = "}. Show that ALLDFA is decidable. iii) Let AECFG = {(G)| G is a CFG that generates &}. Show that AECFG is decidable. iv) Let ETM {(M)| M is a TM and L(M) = 0}. Show that ETM, the complement of Erm, is Turing-recognizable. Let X be the set {1, 2, 3, 4, 5} and Y be the set {6, 7, 8, 9, 10). We describe the functions f: XY and g: XY in the following tables. Answer each part and give a reason for each negative answer. n f(n) n g(n) 1 6 1 10 2 7 2 9 3 6 3 8 4 7 4 7 5 6 5 6 Aa. Is f one-to-one? b. Is fonto? c. Is fa correspondence? Ad. Is g one-to-one? e. Is g onto? f. Is g a correspondence? vi) Let B be the set of all infinite sequences over {0,1}. Show that B is uncountable using a proof by diagonalization.
Can you find the least amount of different numbers to pick from positive numbers (integers) that are at most 100 to confirm two numbers that add up to 101 when each number can be picked at most two times?
Can you find the formula for an that satisfies the provided recursive definition? Please show all steps and justification
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education