Dada una lista unida de 0 y 1, encuentre su equivalente decimal.
Input : 0->0->0->1->1->0->0->1->0 Output : 50 Input : 1->0->0 Output : 4
El valor decimal de una lista enlazada vacía se considera 0.
C++
// C++ Program to find decimal value of // binary linked list #include <bits/stdc++.h> using namespace std; /* Link list Node */ class Node { public: bool data; Node* next; }; /* Returns decimal value of binary linked list */ int decimalValue(Node *head) { // Initialized result int res = 0; // Traverse linked list while (head != NULL) { // Multiply result by 2 and add // head's data res = (res << 1) + head->data; // Move next head = head->next; } return res; } // Utility function to create a new node. Node *newNode(bool data) { Node *temp = new Node; temp->data = data; temp->next = NULL; return temp; } /* Driver program to test above function*/ int main() { /* Start with the empty list */ Node* head = newNode(1); head->next = newNode(0); head->next->next = newNode(1); head->next->next->next = newNode(1); cout << "Decimal value is " << decimalValue(head); return 0; } // This is code is contributed by rathbhupendra
C
// C Program to find decimal value of // binary linked list #include<iostream> using namespace std; /* Link list Node */ struct Node { bool data; struct Node* next; }; /* Returns decimal value of binary linked list */ int decimalValue(struct Node *head) { // Initialized result int res = 0; // Traverse linked list while (head != NULL) { // Multiply result by 2 and add // head's data res = (res << 1) + head->data; // Move next head = head->next; } return res; } // Utility function to create a new node. Node *newNode(bool data) { struct Node *temp = new Node; temp->data = data; temp->next = NULL; return temp; } /* Driver program to test above function*/ int main() { /* Start with the empty list */ struct Node* head = newNode(1); head->next = newNode(0); head->next->next = newNode(1); head->next->next->next = newNode(1); cout << "Decimal value is " << decimalValue(head); return 0; }
Java
// Java Program to find decimal value of // binary linked list class GFG { // Link list Node / static class Node { boolean data; Node next; }; // Returns decimal value of binary linked list / static int decimalValue( Node head) { // Initialized result int res = 0; // Traverse linked list while (head != null) { // Multiply result by 2 and add // head's data res = (res << 1) + (head.data?1:0); // Move next head = head.next; } return res; } // Utility function to create a new node. static Node newNode(int data) { Node temp = new Node(); temp.data = (data==1? true:false); temp.next = null; return temp; } // Driver code/ public static void main(String args[]) { // Start with the empty list / Node head = newNode(1); head.next = newNode(0); head.next.next = newNode(1); head.next.next.next = newNode(1); System.out.print( "Decimal value is "+decimalValue(head)); } } // This code is contributed by Arnab Kundu
Python3
# Python3 program to find decimal value # of binary linked list # Node Class class Node: # Function to initialise the # node object def __init__(self, data): # Assign data self.data = data # Initialize next as null self.next = None # Linked List class contains # a Node object class LinkedList: # Function to initialize head def __init__(self): self.head = None # Returns decimal value of binary # linked list def decimalValue(self, head): # Initialized result res = 0 # Traverse linked list while head: # Multiply result by 2 and # add head's data res = (res << 1) + head.data # Move Next head = head.next return res # Driver code if __name__ == '__main__': #Start with the empty list llist = LinkedList() llist.head = Node(1) llist.head.next = Node(0) llist.head.next.next = Node(1) llist.head.next.next.next = Node(1) print("Decimal Value is {}".format( llist.decimalValue(llist.head))) # This code is contributed by Mohit Jangra
C#
// C# Program to find decimal value of // binary linked list using System; class GFG { // Link list Node / public class Node { public Boolean data; public Node next; }; // Returns decimal value of binary linked list static int decimalValue( Node head) { // Initialized result int res = 0; // Traverse linked list while (head != null) { // Multiply result by 2 and add // head's data res = (res << 1) + (head.data ? 1 : 0); // Move next head = head.next; } return res; } // Utility function to create a new node. static Node newNode(int data) { Node temp = new Node(); temp.data = (data == 1 ? true : false); temp.next = null; return temp; } // Driver cod public static void Main(String []args) { // Start with the empty list Node head = newNode(1); head.next = newNode(0); head.next.next = newNode(1); head.next.next.next = newNode(1); Console.WriteLine("Decimal value is " + decimalValue(head)); } } // This code is contributed by Rajput-Ji
Javascript
<script> // Javascript Program to find decimal value of // binary linked list // Link list Node / class Node { constructor(){ this.data = true; this.next = null; } } // Returns decimal value of binary linked list / function decimalValue(head) { // Initialized result var res = 0; // Traverse linked list while (head != null) { // Multiply result by 2 and add // head's data res = (res << 1) + (head.data ? 1 : 0); // Move next head = head.next; } return res; } // Utility function to create a new node. function newNode(data) { var temp = new Node(); temp.data = (data == 1 ? true : false); temp.next = null; return temp; } // Driver code/ // Start with the empty list / var head = newNode(1); head.next = newNode(0); head.next.next = newNode(1); head.next.next.next = newNode(1); document.write("Decimal value is " + decimalValue(head)); // This code contributed by aashish1995 </script>
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA