answersLogoWhite

0

What else can I help you with?

Continue Learning about Engineering

Write an iterative function to search an element in a binary search tree?

_node* search (_node* head, _key key) { _node* node; for (node=head; node != NULL;;) { if (key == node->key) return node; else if (key < node.>key) node = node->left; else node = node->right; } return node; }


Algoritm for deleting the last element from a list?

Given a list and a node to delete, use the following algorithm: // Are we deleting the head node? if (node == list.head) { // Yes -- assign its next node as the new head list.head = node.next } else // The node is not the head node { // Point to the head node prev = list.head // Traverse the list to locate the node that comes immediately before the one we want to delete while (prev.next != node) { prev = prev.next; } end while // Assign the node's next node to the previous node's next node prev.next = node.next; } end if // Before deleting the node, reset its next node node.next = null; // Now delete the node. delete node;


Is null node equal to leaf node?

No. A leaf node is a node that has no child nodes. A null node is a node pointer that points to the null address (address zero). Since a leaf node has no children, its child nodes are null nodes.


How many pointers will have to be changed if a node is deleted from a linear linked list?

For a singly-linked list, only one pointer must be changed. If the node about to be deleted (let's call it node for the sake of argument) is the head of the list, then the head node pointer must be changed to node->next. Otherwise, the node that comes before the deleted node must change its next pointer to node->next. Note that given a singly-linked node has no knowledge of its previous node, we must traverse the list from the head in order to locate that particular node, unless the node is the head of the list: void remove (List* list, Node* node) { if (!list !node) return; // sanity check!if (list->head == node) {list->head = node->next;} else {Node* prev = list->head;while (prev->next != node) prev = prev->next; // locate the node's previous nodeprev->next = node->next;}} Note that the remove function only removes the node from the list, it does not delete it. This allows us to restore the node to its original position, because the node itself was never modified (and thus still refers to its next node in the list). So long as we restore all removed nodes in the reverse order they were removed, we can easily restore the list. In order to delete a node completely, we simply remove it and then free it:void delete (List* list, Node* node) {if (!list !node) return; // sanity check!remove (list, node);free (node);} For a doubly-linked list, either two or four pointers must be changed. If the node about to be deleted is the head node, then the head node pointer must be changed to n->next and n->next->prev must be changed to NULL, otherwise, n->prev->next becomes n->next. In addition, if the node about to be deleted is the tail node, then the tail node pointer must be changed to n->prev and n->prev->next must be changed to NULL, otherwise, n->next->prev becomes n->prev. Deletion from a doubly-linked list is generally quicker than deletion from a singly linked list because a node in a doubly-linked list knows both its previous node and its next node, so there's no need to traverse the list to locate the previous node to the one being deleted. void remove (List* list, Node* node) {if (!list !node) return; // sanity check!if (list->head == node) {list->head = node->next;node->next->prev = NULL;} else {node->prev->next = node->next; }if (list->tail == node) {list->tail = node->prev;node->prev->next = NULL;} else {node->next->prev = node->prev; }} Again, to physically delete the node we simply remove and then free the node:void delete (List* list, Node* node) {if (!list !node) return; // sanity check!remove (list, node); free (node); }


How do you recursively reverse a singly linked list using c plus plus?

In this case recursion is not necessary, an iterative process is more efficient. Start by pointing at the head node. While this node has a next node, detach its next node and insert that node at the head. Repeat until the original head node has no next node. At that point the head has become the tail and all the nodes are completely reversed. The following example shows how this can be implemented, where the list object contains a head node (which may be NULL), and each node has a next node. The tail node's next node is always NULL. void reverse(list& lst) { if( node* p=lst.head ) { while(p->next) { node* n=p.next; // point to the next node p.next=n.next; // detach the next node n.next=lst.head; // insert the detached node at the head lst.head=n; // set the new head node } } }

Related Questions

How to propagate neon pothos effectively?

To propagate neon pothos effectively, take a cutting with at least two leaves and a node. Place the cutting in water or soil, ensuring the node is submerged. Keep the cutting in a warm, bright location and change the water regularly if propagating in water. Roots should start to grow in a few weeks, and once they are established, you can transplant the cutting into a pot with well-draining soil.


How can I successfully root plants in water?

To successfully root plants in water, you can follow these steps: Choose a healthy plant cutting with at least one leaf node. Place the cutting in a container of water, making sure the node is submerged. Change the water every few days to prevent rot and provide oxygen. Keep the cutting in a warm, bright location but out of direct sunlight. Wait for roots to grow, then transplant the cutting into soil.


What is the most important structure of the human heart?

It is supposed to be the sinus node and the conducting tissue. It includes the AV node and bundle of HIS. The sinus node generate the impulse in the heart for contraction. The AV node and bundle of HIS transmits the impulse to the ventricles.


How can I successfully propagate neon pothos cuttings?

To successfully propagate neon pothos cuttings, follow these steps: Take a cutting with at least two leaves and a node. Place the cutting in water or soil, ensuring the node is submerged. Keep the cutting in a warm, bright location but out of direct sunlight. Change the water regularly if propagating in water. Roots should start to grow in a few weeks, and once they are established, you can transfer the cutting to a pot with well-draining soil.


What is most important in stage determination and regional lymph node involvement?

Of primary importance to stage determination and regional lymph node involvement is identification and analysis of the sentinel lymph node.


How can I propagate plants using water cuttings?

To propagate plants using water cuttings, you can follow these steps: Take a cutting from a healthy plant, making sure it has at least one leaf node. Place the cutting in a container of water, making sure the node is submerged. Change the water every few days to prevent rot and promote root growth. Keep the cutting in a warm, bright location but out of direct sunlight. Once roots have formed, transplant the cutting into soil to continue growing.


Write an iterative function to search an element in a binary search tree?

_node* search (_node* head, _key key) { _node* node; for (node=head; node != NULL;;) { if (key == node->key) return node; else if (key < node.>key) node = node->left; else node = node->right; } return node; }


How a new plant grows a stem cutting?

When a plant stem cutting is taken, it needs to be placed in a suitable growing medium with adequate moisture and light conditions. Roots will begin to form from the node of the stem cutting, absorbing water and nutrients from the medium. Over time, as the roots grow and spread, a new plant will emerge from the cutting.


How to Print data of all nodes of linked list?

for (node=head; node!=null; node=node->next) printnode(node);


How to find the mirror image of a binary tree?

Refer to http://cslibrary.stanford.edu/110/BinaryTrees.html void mirror(struct node* node) { if (node==NULL) { return; } else { struct node* temp; // do the subtrees mirror(node->left); mirror(node->right); // swap the pointers in this node temp = node->left; node->left = node->right; node->right = temp; } }


How can I successfully plant a plumeria cutting in a pot?

To successfully plant a plumeria cutting in a pot, first allow the cutting to dry for a few days to form a callus. Then, plant the cutting in well-draining soil, ensuring the node is buried. Water sparingly and place in a warm, sunny spot. Keep the soil moist but not waterlogged, and roots should develop in a few weeks.


Can we use doubly linked list as a circular linked list?

Yes. The tail node's next node is the head node, while the head node's previous node is the tail node.