Làm phẳng cây thành mảng php
Trong khi duyệt MooTools 1. 2, tôi đã tìm thấy phương thức The Inorder traversal after flattening binary tree 1 2 3 4 5 61 của Array. Phương thức The Inorder traversal after flattening binary tree 1 2 3 4 5 61 lấy các mảng lồng nhau và "làm phẳng" tất cả chúng thành một mảng. Tôi đã tự hỏi làm thế nào tôi có thể làm điều đó bằng cách sử dụng PHP. Sau đây là những gì tôi nghĩ ra Show PHP$myarray = array('a', 'b', array(array(array('x'), 'y', 'z')), array(array('p'))); function array_flatten($array,$return) { for($x = 0; $x <= count($array); $x++) { if(is_array($array[$x])) { $return = array_flatten($array[$x], $return); } else { if(isset($array[$x])) { $return[] = $array[$x]; } } } return $return; } $res = array_flatten($myarray, array()); Kết quảArray ( [0] => a [1] => b [2] => x [3] => y [4] => z [5] => p ) Như bạn có thể thấy, The Inorder traversal after flattening binary tree 1 2 3 4 5 63 được sử dụng đệ quy để tìm ra các giá trị từ mảng ban đầu. Mặc dù tôi không tin rằng mình đã từng thấy mình có một mảng được lồng vào nhau như ví dụ của tôi, nhưng thật tốt khi biết rằng tôi có thể trích xuất các giá trị nếu cần Gói php để làm phẳng các đối tượng json lồng nhau và các mảng lồng nhau. Nó cũng cho phép bạn tạo các tệp csv từ dữ liệu đã được làm phẳng Chuyển đến Tải xuống anahkiasen/làm phẳng340 người yêu thích Một gói dành cho khung Illuminate làm phẳng các trang thành HTML đơn giản Chuyển đến Tải xuống Ashleydawson/canonical-flatten-treeHàm thuần túy để làm phẳng một cây (mảng n chiều) thành một mảng danh sách được chuẩn hóa Chuyển đến Tải xuống te-cho/compile-bladesGói Laravel để biên dịch các lưỡi được lồng trong 1 tệp thành 1 tệp phẳng Chuyển đến Tải xuống pflorek/thang máyLàm phẳng mảng nhiều chiều hoặc bất kỳ \Traversable nào thành mảng một chiều. Nâng cấp một chiều hoặc bất kỳ \Traversable nào thành mảng nhiều chiều Đưa ra một cây nhị phân, làm phẳng nó thành danh sách được liên kết tại chỗ. Không được phép sử dụng cấu trúc dữ liệu phụ trợ. Sau khi làm phẳng, bên trái của mỗi nút sẽ trỏ đến NULL và bên phải sẽ chứa nút tiếp theo theo thứ tự trước ví dụ. Input : 1 / \ 2 5 / \ \ 3 4 6 Output : 1 \ 2 \ 3 \ 4 \ 5 \ 6 Input : 1 / \ 3 4 / 2 \ 5 Output : 1 \ 3 \ 4 \ 2 \ 5 Đề nghị thực hành Làm phẳng cây nhị phân thành danh sách liên kết Thử nó Cách tiếp cận đơn giản. Một giải pháp đơn giản là sử dụng Level Order Traversal using Queue. Trong giao dịch theo thứ tự cấp độ, hãy theo dõi nút trước đó. Đặt nút hiện tại là con phải của nút trước và bên trái của nút trước đó là NULL. Giải pháp này yêu cầu hàng đợi, nhưng câu hỏi yêu cầu giải quyết mà không cần cấu trúc dữ liệu bổ sung
Hiệu quả mà không cần cấu trúc dữ liệu bổ sung Tìm kiếm đệ quy nút không có cháu và cả con trái và con phải trong cây con bên trái. Sau đó lưu trữ node->right trong temp và tạo node->right=node->left. Chèn tạm thời vào nút đầu tiên NULL ở bên phải của nút bằng nút = nút-> phải. Lặp lại cho đến khi nó được chuyển thành danh sách liên kết. Ví dụ, Thực hiện C++The Inorder traversal after flattening binary tree 1 2 3 4 5 64 The Inorder traversal after flattening binary tree 1 2 3 4 5 65 The Inorder traversal after flattening binary tree 1 2 3 4 5 66 The Inorder traversal after flattening binary tree 1 2 3 4 5 67 The Inorder traversal after flattening binary tree 1 2 3 4 5 68 The Inorder traversal after flattening binary tree 1 2 3 4 5 69
The Inorder traversal after flattening binary tree 1 2 3 4 5 60 The Inorder traversal after flattening binary tree 1 2 3 4 5 60 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 62 The Inorder traversal after flattening binary tree 1 2 3 4 5 63 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 65 The Inorder traversal after flattening binary tree 1 2 3 4 5 66
The Inorder traversal after flattening binary tree 1 2 3 4 5 67 The Inorder traversal after flattening binary tree 1 2 3 4 5 68 The Inorder traversal after flattening binary tree 1 2 3 4 5 62 The Inorder traversal after flattening binary tree 1 2 3 4 5 60 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 63 The Inorder traversal after flattening binary tree 1 2 3 4 5 64 The Inorder traversal after flattening binary tree 1 2 3 4 5 65 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 67 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 69 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 641 The Inorder traversal after flattening binary tree 1 2 3 4 5 642 The Inorder traversal after flattening binary tree 1 2 3 4 5 643
The Inorder traversal after flattening binary tree 1 2 3 4 5 644 The Inorder traversal after flattening binary tree 1 2 3 4 5 645 The Inorder traversal after flattening binary tree 1 2 3 4 5 646 ________ 347 ________ 348 ________ 40 ________ 350 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 653 The Inorder traversal after flattening binary tree 1 2 3 4 5 61____355 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 657 The Inorder traversal after flattening binary tree 1 2 3 4 5 658 ________ 359 ________ 341 ________ 361 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 663 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 665 The Inorder traversal after flattening binary tree 1 2 3 4 5 61 The Inorder traversal after flattening binary tree 1 2 3 4 5 657 The Inorder traversal after flattening binary tree 1 2 3 4 5 6675 The Inorder traversal after flattening binary tree 1 2 3 4 5 6630 The Inorder traversal after flattening binary tree 1 2 3 4 5 6630 The Inorder traversal after flattening binary tree 1 2 3 4 5 6636 The Inorder traversal after flattening binary tree 1 2 3 4 5 6679 The Inorder traversal after flattening binary tree 1 2 3 4 5 6680 The Inorder traversal after flattening binary tree 1 2 3 4 5 6630 The Inorder traversal after flattening binary tree 1 2 3 4 5 6630 The Inorder traversal after flattening binary tree 1 2 3 4 5 6636 The Inorder traversal after flattening binary tree 1 2 3 4 5 6684 |