Programming Language Pragmatics, Fourth Edition
Programming Language Pragmatics, Fourth Edition
4th Edition
ISBN: 9780124104099
Author: Michael L. Scott
Publisher: Elsevier Science
Expert Solution & Answer
Book Icon
Chapter 6, Problem 20E

Explanation of Solution

Employing the functions to complete the Example 6.73:

  • The Example 6.73 explains about imitating the iterators in C.
  • In that example, they decouple the enumeration of a collection from original use of elements by taking appropriate programming conventions.
  • There are two differences between the codes.
    1. ○ The syntax of the loop is good and elegant.
    2. ○ The iterator is simply a type and some associated functions, C gives no abstraction technique to group them together as a class.
  • The following program expands the Example 6.73 with the code for “tree_iter type (struct)” and “ti_create”, “ti_done”, “ti_next”, “ti_val”, and “ti_delete” functions.

Program:

//Defining structure to the tree node

typedef struct tree_node

{

    //Defining the value in data

    data val;

    //Defining left and right node using pointers

    struct tree_node *left, *right;

} tree_node;

/* a tree_iter contains a list-based stack of

tree_nodes (subtrees) that have yet to be visited */

//Defining the structure for list_ node

typedef struct list_node

{

    //Defining the tree_node

    tree_node *tn;

    //Defining the list_node

    struct list_node *next;

} list_node;

//Defining the structure for list_node and tree_iter

typedef list_node *tree_iter;

/*Defining the push method which push the element to the stack based on pointers*/

void ti_push(tree_node *n, tree_iter *tp)

{

    if (n)

    {

        list_node *t = *tp;

        *tp = (tree_iter) malloc(sizeof(list_node));

        (*tp)->tn = n; (*tp)->next = t;

    }

}

/* Creating the tree with tree_node and tree_iter creates assigns 0 to push element*/

void ti_create(tree_node *root, tree_iter *tp)

{

    *tp = 0;

    ti_push(root, tp);

}

//If adding the element to list is finished, it retruns the ti...

Blurred answer
Students have asked these similar questions
Information Security Risk and Vulnerability Assessment 1- Which TCP/IP protocol is used to convert the IP address to the Mac address? Explain 2-What popular switch feature allows you to create communication boundaries between systems connected to the switch3- what types of vulnerability directly related to the programmer of the software?4- Who ensures the entity implements appropriate security controls to protect an asset?         Please do not use AI and add refrence
Find the voltage V0 across the 4K resistor using the mesh method or nodal analysis. Note: I have already simulated it and the value it should give is -1.714V
Resolver por superposicion
Knowledge Booster
Background pattern image
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