Data structures and algorithms in C++
Data structures and algorithms in C++
2nd Edition
ISBN: 9780470460443
Author: Goodrich
Publisher: WILEY
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
Whentheuserenters!!,themostrecentcommandinthehistoryisexecuted.In the example above, if the user entered the command: Osh> !! The ‘ls -l’ command should be executed and echoed on user’s screen. The command should also be placed in the history buffer as the next command. Whentheuserentersasingle!followedbyanintegerN,theNthcommandin the history is executed. In the example above, if the user entered the command: Osh> ! 3 The ‘ps’ command should be executed and echoed on the user’s screen. The command should also be placed in the history buffer as the next command. Error handling: The program should also manage basic error handling. For example, if there are no commands in the history, entering !! should result in a message “No commands in history.” Also, if there is no command corresponding to the number entered with the single !, the program should output "No such command in history."
Activity No. Activity Time (weeks) Immediate Predecessors 1 Requirements collection 3 2 Requirements structuring 4 1 3 Process analysis 3 2 4 Data analysis 3 2 5 Logical design 50 3,4 6 Physical design 5 5 7 Implementation 6 6 c. Using the information from part b, prepare a network diagram. Identify the critical path.
2. UNIX Shell and History Feature [20 points] This question consists of designing a C program to serve as a shell interface that accepts user commands and then executes each command in a separate process. A shell interface gives the user a prompt, after which the next command is entered. The example below illustrates the prompt osh> and the user's next command: cat prog.c. The UNIX/Linux cat command displays the contents of the file prog.c on the terminal using the UNIX/Linux cat command and your program needs to do the same. osh> cat prog.c The above can be achieved by running your shell interface as a parent process. Every time a command is entered, you create a child process by using fork(), which then executes the user's command using one of the system calls in the exec() family (as described in Chapter 3). A C program that provides the general operations of a command-line shell can be seen below. #include #include #define MAX LINE 80 /* The maximum length command */ { int…
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