Chuyển đổi danh sách thành danh sách liên kết python
Điều này có thể đạt được bằng cách duyệt cây theo thứ tự, trái nút con -> gốc -> nút phải. Duyệt cây con bên trái và chuyển nó thành danh sách liên kết kép bằng cách thêm các nút vào cuối danh sách. Theo cách này, nút ngoài cùng bên trái sẽ trở thành đầu danh sách. Sau đó, chuyển cây con bên phải thành danh sách liên kết kép Show
Trong bài này chúng ta sẽ tìm hiểu về cách chuyển danh sách liên kết thành mảng bằng chương trình golang Danh sách được liên kết - Các phần tử trong danh sách được liên kết thường không được lưu trữ gần nhau và cấu trúc lưu trữ của chúng ít cứng nhắc hơn, chúng phải được lưu trữ bằng các thẻ bổ sung đề cập đến phần tử tiếp theo. Danh sách được liên kết là một cấu trúc được tạo động, nó có hai phần tử trong đó, một là lưu trữ giá trị và phần còn lại là lưu trữ địa chỉ của cấu trúc tiếp theo Mảng - Trong mảng, các phần tử được lưu trữ trong các vị trí bộ nhớ liền kề với các địa chỉ dễ tính toán, cho phép truy cập nhanh hơn vào một phần tử tại một chỉ mục nhất định. Có thể truy cập bất kỳ phần tử nào của mảng chỉ bằng cách lập chỉ mục trên mảng Cú pháp của một mảng trong Golangvar array_name[length]Type Để xác định một mảng, chúng ta cần xác định một biến theo sau là tên của mảng mà chúng ta muốn cung cấp, sau đó là kích thước của các phần tử mà nó sẽ chứa, sau đó là kiểu dữ liệu mà mảng sẽ chứa Cú pháp của một Linked List trong Golangtype name_of_list struct { variable type pointer } Danh sách liên kết bắt đầu bằng từ khóa type gợi ý rằng chúng ta đang xác định một kiểu mới theo sau là tên của nó và từ khóa struct sau đó chúng ta cần xác định biến để lưu dữ liệu và biến con trỏ để lưu địa chỉ của nút Ví dụMã chương trình Golang để chuyển đổi một danh sách được liên kết thành một mảng package main // fmt package allows us to print anything on the screen import "fmt" // describing a node that contains data and the address of the next node type node struct { data int next *node } // defining a type LinkedList that contains the address of the head node and the length of the node type linkedlist struct { len int head *node } // function to get the address of the linked list func initList() *linkedlist { return &linkedlist{} } // function to add a new node func (l *linkedlist) prepend(data int) { node := &node{ data: data, } if l.head == nil { l.head = node } else { node.next = l.head l.head = node } l.len++ return } // function to get the size of the linked list func (s *linkedlist) Size() int { return s.len } // Function to convert a singly linked list to an array func (s *linkedlist) ToArray() []int { // creating an array of integers named myarr var myarr []int // storing the first address of the list to a variable called the current current := s.head // traversing over the list until it is empty and appending the current value to the array for current.next != nil { fmt.Printf("\nAdding Element to array: %d", current.data) myarr = append(myarr, current.data) // updating the address of the current variable with the address of the next node current = current.next } fmt.Printf("\nAdding Element to array: %d", current.data) myarr = append(myarr, current.data) // returning the array thus formed return myarr } func main() { // creating a new list named mylist mylist := initList() // adding elements to the linked list fmt.Printf("converting the below elements into array") mylist.prepend(100) mylist.prepend(200) mylist.prepend(300) mylist.prepend(400) // calling the ToArray() function to convert values of the linked list myarr := mylist.ToArray() fmt.Printf("\nThe size of the linked list is: %d\n", mylist.Size()) // printing the final array fmt.Println("\nThe final array obtained from the linked list is:", myarr) } đầu raconverting the below elements into array Adding Element to array: 400 Adding Element to array: 300 Adding Element to array: 200 Adding Element to array: 100 The size of the linked list is: 4 The final array obtained from the linked list is: [400 300 200 100] Mô tả của Mã
Phần kết luậnTrong bài viết này, chúng tôi đã tuân thủ và thực hiện thành công một chương trình ngôn ngữ go để chuyển đổi một danh sách liên kết đơn sang một mảng Làm cách nào để chuyển đổi mảng thành danh sách được liên kết trong Python?Cho một mảng arr[] có kích thước N. Nhiệm vụ là tạo danh sách liên kết từ mảng đã cho. Cách tiếp cận đơn giản. Đối với mỗi phần tử của một mảng arr[] chúng ta tạo một nút trong danh sách liên kết và chèn nó vào cuối .
Danh sách và danh sách được liên kết có giống nhau trong Python không?Danh sách được liên kết khác với danh sách ở chỗ chúng lưu trữ các phần tử trong bộ nhớ . Trong khi các danh sách sử dụng một khối bộ nhớ liền kề để lưu trữ các tham chiếu đến dữ liệu của chúng, thì các danh sách được liên kết lưu trữ các tham chiếu như một phần của các phần tử riêng của chúng.
Bạn có thể tạo danh sách liên kết bằng Python không?Danh sách liên kết là một dãy các phần tử dữ liệu được kết nối với nhau thông qua các liên kết. Mỗi phần tử dữ liệu chứa một kết nối đến một phần tử dữ liệu khác dưới dạng một con trỏ. Python không có danh sách liên kết trong thư viện chuẩn của nó
Bạn có thể chuyển đổi danh sách thành chuỗi trong Python không?Để chuyển đổi danh sách thành chuỗi, hãy sử dụng chức năng Hiểu danh sách Python và hàm join() . Việc hiểu danh sách sẽ duyệt qua từng phần tử một và phương thức nối () sẽ nối các phần tử của danh sách thành một chuỗi mới và trả về nó dưới dạng đầu ra. |