Di chuyển trong danh sách được liên kết trong python là gì?

Di chuyển ngang là thao tác phổ biến nhất được thực hiện trong hầu hết mọi tình huống của danh sách liên kết đơn. Duyệt qua có nghĩa là truy cập từng nút của danh sách một lần để thực hiện một số thao tác trên đó. Điều này sẽ được thực hiện bằng cách sử dụng các câu lệnh sau

thuật toán

  • BƯỚC 1. THIẾT LẬP PTR = ĐẦU
  • BƯỚC 2. NẾU PTR = NULL
  •    VIẾT "DANH SÁCH TRỐNG"
      CHUYỂN ĐẾN BƯỚC 7
      KẾT THÚC NẾU

  • BƯỚC 4. LẶP LẠI BƯỚC 5 VÀ 6 CHO ĐẾN KHI PTR. = KHÔNG
  • BƯỚC 5. IN PTR→ DỮ LIỆU
  • BƯỚC 6. PTR = PTR → TIẾP THEO
  • [HẾT VÒNG LOẠI]

  • BƯỚC 7. LỐI RA

chức năng C

đầu ra

1.Append List
2.Traverse
3.Exit
4.Enter your choice?1

Enter the item
23

Node inserted

1.Append List
2.Traverse
3.Exit
4.Enter your choice?1

Enter the item
233

Node inserted

1.Append List
2.Traverse
3.Exit
4.Enter your choice?2
printing values . . . . .

233
23

Cho một danh sách liên kết đơn, tìm phần giữa của danh sách liên kết. Cho một danh sách liên kết đơn, tìm phần giữa của danh sách liên kết. Ví dụ: nếu danh sách liên kết đã cho là 1->2->3->4->5 thì đầu ra phải là 3

Phương pháp 1. Duyệt qua toàn bộ danh sách được liên kết và đếm số không. của các nút. Bây giờ hãy duyệt lại danh sách cho đến khi đếm/2 và trả về nút ở đếm/2.  

Phương pháp 2. Duyệt danh sách liên kết bằng hai con trỏ. Di chuyển một con trỏ bằng một và con trỏ khác bằng hai. Khi con trỏ nhanh đến cuối con trỏ chậm sẽ đến giữa danh sách được liên kết.  

Thực hiện

Python3




100
7

100
8

 

100
9

100
0
100
1

 

100
2____73

100
2
100
0
100
1
100
2
100
3

100
4
100
2
100
6
100
7
100
8

100
4
100
2____671
100
72
100
7
100
74

 

100
0
100
76

 

100
2
100
0
100
1____12
100
81

100
4
100
2____684
100
7
100
74

 

100
2
100
0
100
89
100
2
100
91

100
4
100
93____17
100
95

100
4
100
97______672
100
7
100
2
100
84

100
4
100
2____684
100
7
100
93

 

100
2____708

100
2____710

100
2
100
0
100
13____12
100
81

100
4
100
17
100
7
100
2
100
84

100
4
100
22____17
100
2
100
84

 

100
4
100
27
100
2
100
84
100
30
100
31
100
74
100
33

100
34
100
35
100
36
100
30
100
31
100
74
100
20
100
21
100
72
100
30
100
31
100
74
100
81

100
27
100
22
100
7
100
21
100
72
100
71
100
72

100
27
100
17
100
7
100
07
100
72

100
34
100
10
100
11
100
12
100
13

 

100
14

100
15
100
7
100
17

100
18
100
19____120

100
18
100
22____120

100
18
100
25
100
20

100
18
100
28
100
20

100
18
100
31____120

100
33

Đầu ra

100
6

Phương pháp 3. Đã khởi tạo biến tạm thời dưới dạng đầu Khởi tạo đếm đến 0. Vòng lặp cho đến khi đầu sẽ trở thành Null[i. e cuối danh sách] và tăng nút tạm thời khi số lượng chỉ là số lẻ, theo cách này, tạm thời sẽ đi qua phần tử giữa và đầu sẽ đi qua tất cả danh sách được liên kết. In dữ liệu của nhiệt độ.  

Di chuyển ngang trong danh sách liên kết đôi là gì?

Trong thao tác duyệt danh sách liên kết kép, chúng tôi truy cập mọi nút ít nhất một lần để hiển thị tất cả các phần tử dữ liệu hoặc thực hiện các thao tác . Bạn có thể duyệt qua danh sách được liên kết này theo hai hướng khác nhau, đó là. Đi ngang bình thường, tôi. e. , từ nút đầu đến nút đuôi. Đi ngược lại, tôi. e. , từ nút đuôi đến nút đầu.

Làm cách nào để tạo một danh sách được liên kết và duyệt qua nó?

Logic mô tả từng bước để duyệt danh sách được liên kết. .
Tạo một biến tạm thời để duyệt qua. Gán tham chiếu của nút đầu cho nó, giả sử temp = head
Lặp lại bước dưới đây cho đến khi tạm thời. = KHÔNG
temp->data chứa dữ liệu nút hiện tại. .
Sau khi hoàn tất, di chuyển đến nút tiếp theo bằng cách sử dụng temp = temp->next;
Quay lại bước thứ 2

Chúng ta có thể duyệt lại trong danh sách được liên kết không?

Để đảo ngược Danh sách được liên kết theo cách đệ quy, chúng ta cần chia Danh sách được liên kết thành hai phần. đầu và còn lại. Head trỏ đến phần tử đầu tiên ban đầu. Các điểm còn lại đến phần tử tiếp theo từ phần đầu. Chúng tôi duyệt đệ quy LinkedList cho đến phần tử cuối cùng thứ hai .

Chủ Đề