Cho trước một danh sách liên kết L. Viết một hàm đếm số lượng phần tử của danh sách liên kết này.
Viết hàm delete_Jast(L) có chức năng xoá phần tử cuối cùng của danh sách liên kết L.
class Node:
def __init__(self, key=None):
self.key = key
self.next = None
def delete_Jast(L):
if L is None or L.next is None: # Nếu danh sách liên kết rỗng hoặc chỉ có một phần tử
return None # Không cần xoá, trả về None
current = L # Đặt con trỏ current trỏ đến node đầu tiên của danh sách liên kết
while current.next.next is not None: # Duyệt đến node trước node cuối cùng
current = current.next # Chuyển con trỏ current sang node kế tiếp trong danh sách liên kết
current.next = None # Thay đổi liên kết của node trước node cuối cùng để xoá node cuối cùng
return L # Trả về đối tượng đầu tiên của danh sách liên kết sau khi xoá
L = delete_Jast(L)
4. Viết chương trình nhập vào một danh sách các số tự nhiên n phần tử. Đưa ra màn hình các kết quả sau:
- Đếm các phần tử trong danh sách
- Tính tổng các phần tử trong danh sách
- Tính tổng các số chẵn, tổng các số lẻ
- Chèn vào đầu danh sách một giá trị’
- Chèn vào cuối danh sách một giá trị
- Nhập một số tự nhiên x, tìm và xóa trong danh sách các số bằng x
Viết đoạn chương trình ngắn sử dụng thư viện LinkedList đề thiết lập một danh sách liên kết L và bổ sung các tên "Bình", "Hoa", "Hà" vào danh sách này.
Tham khảo:
from LinkedList import *
# Tạo danh sách liên kết mới
L = LL()
# Thêm các tên vào danh sách liên kết
insert(L, "Bình")
insert(L, "Hoa")
insert(L, "Hà")
# Hiển thị nội dung của danh sách liên kết
show(L)
Viết hàm đầu vào là danh sách A. Hàm trả lại là một danh sách kết quả B từ danh sách A bằng cách chỉ giữ lại các phần tử chẵn trong A.
Cho trước danh sách liên kết L với cấu trúc như đã mô tả trong bài học, muốn lấy ra khoá của node đầu tiên của danh sách thì dùng lệnh nào?
Để lấy ra khoá của node đầu tiên trong danh sách liên kết, bạn có thể sử dụng thuộc tính key của đối tượng node đầu tiên trong danh sách.
Viết chương trình tạo một danh sách mảng có thể chứa tối đa 100 phần tử, rồi nhập số lượng n phần tử vào danh sách vừa tạo, thực hiện tính tổng các phần tử chẵn, rồi in kết quả tổng ra màn hình.
Var a:array[1..100] of integer;
i,n:integer;
s:longint;
Begin
Repeat
Write('n = ');readln(n);
Until (n>0) and (n<=100);
For i:=1 to n do
Begin
Write('Nhap phan tu thu ',i);readln(a[i]);
If a[i] mod 2 = 0 then s:=s+a[i];
End;
Write('Tong cac so chan la ',s);
Readln
End.
vViết chương trình tạo một danh sách mảng có thể chứa tối đa 100 phần tử, rồi nhập số lượng n phần tử vào danh sách vừa tạo, thực hiện tính trung bình cộng các phần tử rồi in kết quả ra màn hình.
program TrungBinhCong;
const
MAX = 100;
var
danhSach: array[1..MAX] of integer;
n, i, tong: integer;
trungbinh: real;
begin
write('Nhap so ptu (toi da 100): ');
readln(n);
tong := 0;
for i := 1 to n do
begin
write('Nhap giatri ptu thu ', i, ': ');
readln(danhsach[i]);
tong := tong + danhsach[i];
end;
trungbinh := tong / n;
writeln('Tbc cua danh sach la: ', trungbinh:0:2);
readln;
end.
Var a:array[1..100] of integer;
i,n:integer;
s:longint;
tbc:real;
Begin
Repeat
Write('n = ');readln(n);
Until (n>0) and (n<=100);
For i:=1 to n do
Begin
Write('Nhap phan tu thu ',i);readln(a[i]);
s:=s+a[i];
End;
tbc:=s/n;
Write('Trung binh cong la ',tbc:10:2);
Readln
End.
Đọc, trao đổi và thảo luận để biết cấu trúc dữ liệu của danh sách liên kết và các thao tác dữ liệu cơ bản trên danh sách liên kết.
Để lấy ra khoá của node đầu tiên trong danh sách liên kết, bạn có thể sử dụng thuộc tính key của đối tượng node đầu tiên trong danh sách.