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.
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 đầ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.
Lát cắt
a. Cho a là mảng (danh sách) các số. Hãy dùng lát cắt tạo danh sách b và dùng vòng lặp For in kết quả ra màn hình (xem mẫu ở Hình 1) để kiểm tra kết quả trong mỗi trường hợp sau:
- b là nửa cuối của a
- b là một phần tử kể từ đầu trái của a
- b là các phần tử chỉ số lẻ của a
b. Cho a là ma trận (bảng số) hình vuông n x m các số thực. Hãy viết các câu lệnh (dùng lát cắt khi có thể) để in kết quả ra màn hình và kiểm tra kết quả trong mỗi trường hợp sau:
- Các hàng chỉ số chẵn của a
- Hai phần tử đầu tiên của hàng đầu tiên của a
- Hai cột đầu tiên của a
- Các cột chỉ số lẻ của a
Toán tử lát cắt (hình 2) trích ra đoạn con liền mạch hay dãy con (có bước nhảy step cách quãng) từ một dãy tuần tự nhiều mục dữ liệu, ví dụ như một biến kiểu danh sách
Lưu ý: Nếu bước nhảy step nhận giá trị âm thì toán tử lát cắt sẽ đảo chiều, đi từ cuối danh sách lên đầu danh sách, từ phải sang trái, kết quả nhận được giống như dùng phương thức reverse() (xem ví dụ hình 3).
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 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.
Cho danh sách a gồm n phần tử có kiểu Nguyên viết chương trình nhập các phần tử của danh sách tính và đưa ra màn hình tổng các số là bội của 3 có trong danh sách
Program HOC24;
var a: array[1..1000] of integer;
i,n : integer;
t: longint;
begin
write('Nhap N: '); realdn(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
t:=0;
for i:=1 to n do if a[i] mod 3 = 0 then t:=t+a[i];
write('Tong cac so la boi cua 3 trong danh sach la: ',t);
readln
end.
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
Dựa trên hình minh hoạ, mô tả các bước thực hiện các phép toán sau của danh sách liên kết để minh hoạ chúng đều có thời gian là O(1).
a) Thêm nút vào cuối danh sánh, thêm nút vào giữa danh sách.
b) Gỡ bỏ nút ở cuối danh sánh, ở đầu danh sách.
Gợi ý: Mô tả các bước thực hiện các phép toán sau của danh sách liên kết để minh hoạ chúng đều có thời gian là O(1).
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.