Làm thế nào để bạn tạo một danh sách liên kết đơn giản trong python?
Mọi danh sách liên kết đều có các nút được liên kết với nhau để tạo thành danh sách liên kết. Một nút chứa dữ liệu và một liên kết. Liên kết dùng để lưu địa chỉ của phần tử tiếp theo trong danh sách Show Hãy tạo một lớp Node trong python
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Bước 2. Tạo một lớp danh sách liên kếtMột lớp danh sách được liên kết sẽ chứa phần đầu của danh sách được liên kết và các phương thức khác như chèn, xóa và tìm kiếm Một số cấu trúc dữ liệu bạn có thể sử dụng là các tập hợp chẳng hạn như mảng, danh sách, bản đồ, tập hợp, v.v. Tất cả đều thực hiện công việc tuyệt vời là lưu trữ và truy cập dữ liệu, nhưng đôi khi bạn có thể cần một cái gì đó khác. Một cấu trúc dữ liệu khác thường được sử dụng được gọi là Danh sách liên kết Danh sách liên kết là gì?Danh sách được liên kết là một cấu trúc dữ liệu lưu trữ dữ liệu dưới dạng chuỗi. Cấu trúc của danh sách được liên kết sao cho mỗi phần dữ liệu có kết nối với phần tiếp theo (và đôi khi cả dữ liệu trước đó). Mỗi phần tử trong danh sách liên kết được gọi là một nút Bạn có thể coi nó như một chuỗi thực tế, trong đó mỗi vòng hoặc nút được kết nối với nhau. Giống như mọi cấu trúc dữ liệu khác, danh sách được liên kết có ưu và nhược điểm của chúng Ưu điểm của danh sách liên kết
Nhược điểm của danh sách liên kết
Khi nào bạn nên sử dụng danh sách liên kết?Bạn nên sử dụng danh sách liên kết trên một mảng khi
Đây là một vài điều bạn nên xem xét trước khi thử triển khai danh sách được liên kết Bây giờ với tất cả lý thuyết đã hết, đã đến lúc thực hiện một. Chúng ta sẽ làm điều này bằng Python, nhưng hầu hết những gì chúng ta tìm hiểu ở đây đều áp dụng cho bất kỳ ngôn ngữ nào bạn đang sử dụng. Điều quan trọng nhất là phải hiểu nó hoạt động như thế nào Cách sử dụng danh sách liên kết trong PythonĐây là một thủ thuật khi tạo Danh sách liên kết. Đó là điều đã giúp tôi hiểu nó tốt hơn nhiều Bạn chỉ cần nhận ra rằng mọi mục mà bạn sẽ thêm vào danh sách chỉ là một nút (tương tự như một vòng trong chuỗi). Điểm khác biệt của phần đầu (là nút đầu tiên trong danh sách) là bạn đã đặt cho nó phần đầu tiêu đề và sau đó bạn bắt đầu thêm các nút khác vào đó Hãy nhớ rằng Danh sách được liên kết tương tự như cách một chuỗi được ghép nối với nhau. Tôi sẽ sử dụng điều này để minh họa khi chúng ta đi. để bạn có thể suy nghĩ theo những dòng này (đây không phải là một lớp nghệ thuật – tôi nhắc lại, đây không phải là một lớp nghệ thuật. ) ) Vì vậy, trước tiên hãy tạo các nút
3 vì đối với bất kỳ thứ gì được thêm vào danh sách được liên kết, ít nhất nó phải có một số giá trị (ví dụ: ngoại trừ trong một số trường hợp hiếm hoi, bạn không thêm một chuỗi trống vào một mảng, phải không?) 4 có nghĩa là có thể chúng tôi muốn xâu chuỗi các nút khác - ý tôi là, đó là mục đích chính của danh sách được liên kếtTiếp theo chúng ta sẽ định nghĩa một số chức năng cơ bản
5 cho phép bạn thêm một nút mới vào danh sách. Hãy khám phá cách nó hoạt độngNếu tôi có hai giá trị – giả sử 1 và 2 – và tôi muốn thêm chúng vào danh sách, điều đầu tiên là xác định chúng dưới dạng các nút riêng lẻ (nghĩa là dưới dạng các vòng của chuỗi). tôi có thể làm điều đó như thế này
Bây giờ tôi có thể định nghĩa một danh sách được liên kết vì tôi đã có sẵn các nút của mình. Một danh sách được liên kết (giống như các chuỗi chúng ta thấy – luôn có phần đầu, phải không?), vì vậy tôi có thể xác định danh sách được liên kết của mình với một giá trị phần đầu mà về cơ bản chỉ là một nút (vòng) khác
Bây giờ từ đoạn mã trên, 0 là phần đầu của danh sách được liên kết, đây chỉ là một cách thú vị để nói điểm bắt đầu của danh sách được liên kết của tôi. Tôi có thể thêm nhiều mục hơn vào nó và vì mỗi chuỗi phải được kết nối (nghĩa là bên trong nhau), trước tiên tôi phải thiết lập trường hợp cơ sở để kiểm tra xem danh sách có phần đầu khôngĐiều tạo nên một danh sách liên kết là nó có một điểm bắt đầu. Nếu không, chúng ta chỉ cần đặt phần tử mới vào đầu. Nhưng nếu nó đã có phần đầu, tôi phải xem qua toàn bộ danh sách và tiếp tục kiểm tra xem có nút nào có 4 trống không (nghĩa là 2)Một lần nữa, danh sách được liên kết giống như một chuỗi, phải không? . Khi một nút có nút tiếp theo là 4, điều đó đơn giản có nghĩa là nút đó ở cuối danh sách. Vì vậy, tôi có thể dễ dàng thêm nút mới vào vị trí đó. Hãy tạo một phương thức để xóa một nút. Nhưng trước khi làm, hãy nghĩ về nó trong giây lát. Hãy tưởng tượng bạn có một sợi dây xích và bạn phát hiện ra một chiếc nhẫn yếu. Bạn làm nghề gì? Trước tiên, bạn tìm chiếc nhẫn yếu, sau đó bạn tháo nó ra và nối chiếc trước và chiếc sau lại với nhau. Nhưng nếu vòng yếu là vòng đầu tiên, điều đó thật dễ dàng – bạn chỉ cần xóa nó và không thực sự phải tham gia bất kỳ thứ gì. Vòng thứ hai tự động trở thành đầu của chuỗi. Hãy thử hình dung điều đó Chúng tôi muốn làm điều tương tự ở đây. Vì vậy, trước tiên chúng tôi tìm vòng yếu – trong trường hợp này sẽ là giá trị mà chúng tôi đang tìm kiếm – và sau đó chúng tôi sẽ lấy cái trước và cái sau và nối chúng lại với nhau ________số 8Vì vậy, những gì chúng tôi đang làm ở đây chỉ đơn giản là đi qua từng nút để xem liệu đó có phải là giá trị mà chúng tôi muốn xóa hay không. Nhưng khi chúng tôi di chuyển qua danh sách, chúng tôi phải theo dõi giá trị trước đó (chúng tôi vẫn phải nối lại danh sách với nhau). Chúng tôi làm điều này với 5 như bạn có thể thấy bên trên hoặc bên dưới. )Vì vậy, khi nút đã được tìm thấy, 6 chứa nút trước nó, có thể dễ dàng chuyển đổi (nghĩa là giá trị tiếp theo) để trỏ đến một nút khác – trong trường hợp này là các nút khác được kết nối với nút mà chúng tôi muốn xóa. Tôi hy vọng điều này có ý nghĩa. )Hãy thực hiện việc chèn một nút vào một vị trí cụ thể. Chúng tôi sẽ sử dụng phép loại suy chuỗi của chúng tôi để hiểu điều này tốt hơn Khi bạn giữ một sợi xích và bạn thực sự muốn tăng chiều dài của sợi xích, bạn có ba lựa chọn. Bạn có thể
Một điều bạn nên ghi nhớ là bất cứ nơi nào bạn quyết định thêm nó, bạn phải nối các nút khác trở lại với nó. Điều đó chỉ khả thi nếu bạn theo dõi các nút khác bằng một vòng lặp Hãy xem điều đó trong hành động 1Chúng tôi được cung cấp một vị trí để chèn nút trong mã ở trên. Nếu vị trí là một, có nghĩa là nó sẽ là gốc. Vì chúng tôi không chắc lắm, chúng tôi có thể khởi tạo một vòng lặp và bộ đếm để theo dõi vòng lặp Nếu vị trí chúng ta chèn là một (nghĩa là gốc), chỉ cần lưu gốc hiện tại vào một biến giả, tạo một gốc mới, sau đó thêm gốc trước đó (nghĩa là toàn bộ chuỗi) vào gốc mới này Nếu vị trí không phải là một, hãy tiếp tục đi qua chuỗi cho đến khi bạn tìm thấy vị trí. Điều này khá đơn giản, tương tự như chuỗi vật lý. bạn chỉ cần nhìn qua mọi nơi có một nút và lấy giá trị, sau đó chuyển sang nút tiếp theo 2Vì vậy, đó là tất cả trên danh sách được liên kết cho đến bây giờ. Chúng tôi sẽ làm việc để giải quyết một số câu hỏi về danh sách được liên kết sau này kết thúcTrong bài viết này, tôi đã giải thích
QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO Đọc thêm bài viết Nếu bài viết này hữu ích, hãy tweet nó Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu Danh sách liên kết đơn giản là gì?Danh sách liên kết đơn là một loại danh sách liên kết đơn hướng, tức là nó chỉ có thể duyệt theo một hướng từ nút đầu đến nút cuối cùng (đuôi). Each element in a linked list is called a node. A single node contains data and a pointer to the next node which helps in maintaining the structure of the list.
Ba 3 loại danh sách liên kết là gì?Có bốn loại danh sách liên kết chính. . Danh sách liên kết đơn Danh sách liên kết đôi Danh sách liên kết vòng Danh sách liên kết đôi vòng |