Bài tập  /  Bài đang cần trả lời

Giải bài có thưởng!

Xây dựng các hàm thực hiện các công việc sau: a. Nhập danh sách liên kết theo giải thuật thêm vào cuối danh sách, mỗi phần tử gồm có các thông tin sau:

Giúp mình giải bài lập trình C++ vs ạ
10. Xây dựng các hàm thực hiện các công việc sau: 
a. Nhập danh sách liên kết theo giải thuật thêm vào cuối danh sách, mỗi phần tử 
gồm có các thông tin sau: mssv (int), và hoten (char hoten[30]), dtb (float). 
b. Liệt kê danh sách ra màn hình.
c. Cho biết tổng số sinh viên có trong danh sách, đặt tên hàm là Reccount.
d. Thêm 1 sinh viên vào sau phần tử có thứ tự thứ i trong danh sách. 
0 trả lời
Hỏi chi tiết
71
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Để xây dựng các hàm cho việc nhập và quản lý danh sách liên kết trong Python (hoặc bất kỳ ngôn ngữ lập trình nào bạn muốn), trước tiên bạn cần xác định cấu trúc của một phần tử trong danh sách. Giả sử mỗi phần tử trong danh sách có ba thông tin: tên (string), tuổi (int), và địa chỉ (string). Dưới đây là mã Python để định nghĩa cấu trúc danh sách liên kết và hàm nhập phần tử vào cuối danh sách.

### Bước 1: Định nghĩa lớp cho nút (Node)

```python
class Node:
def __init__(self, name, age, address):
self.name = name
self.age = age
self.address = address
self.next = None # Khởi tạo biến tiếp theo bằng None
```

### Bước 2: Định nghĩa lớp cho danh sách liên kết

```python
class LinkedList:
def __init__(self):
self.head = None # Khởi tạo đầu danh sách bằng None

def append(self, name, age, address):
new_node = Node(name, age, address)
if not self.head:
# Nếu danh sách rỗng, thêm nút mới làm đầu danh sách
self.head = new_node
return

# Nếu danh sách không rỗng, tìm nút cuối cùng
last_node = self.head
while last_node.next:
last_node = last_node.next

# Gán nút mới vào cuối danh sách
last_node.next = new_node

def display(self):
current_node = self.head
while current_node:
print(f"Tên: {current_node.name}, Tuổi: {current_node.age}, Địa chỉ: {current_node.address}")
current_node = current_node.next
```

### Bước 3: Hàm nhập danh sách và sử dụng các hàm đã định nghĩa

```python
def main():
linked_list = LinkedList()

while True:
name = input("Nhập tên (hoặc 'exit' để dừng): ")
if name.lower() == 'exit':
break

age = int(input("Nhập tuổi: "))
address = input("Nhập địa chỉ: ")

linked_list.append(name, age, address)

print("Danh sách liên kết đã nhập:")
linked_list.display()

if __name__ == "__main__":
main()
```

### Mô tả:

1. **Node Class**: Định nghĩa cấu trúc của một nút trong danh sách liên kết.
2. **LinkedList Class**: Đặt các phương thức để thêm phần tử vào cuối danh sách (`append`) và hiển thị danh sách (`display`).
3. **main Function**: Nhập dữ liệu từ người dùng và thêm vào danh sách liên kết. Kết thúc khi người dùng nhập "exit".

Bạn có thể chạy mã này ở môi trường Python để thử nghiệm. Hãy đảm bảo rằng bạn có phiên bản Python 3.x để đảm bảo mã hoạt động đúng cách.

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập Lập trình Đại học mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo