TỔNG QUAN
CẤU TRÚC ĐIỀU KHIỂN
VÒNG LẶP
CHUỖI VÀ MẢNG
COLLECTIONS
THƯ VIỆN QUAN TRỌNG
HƯỚNG ĐỐI TƯỢNG
XỬ LÝ LUỒNG
EXCEPTION
LÀM VIỆC VỚI FILE
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Java - Viết chương trình tương tác với một danh sách liên kết chứa các số nguyên dương.

Viết chương trình thực hiện các yêu cầu sau:

  • Nhập vào một danh sách liên kết lưu trữ các số nguyên dương và các phần tử cho danh sách này.
  • Hiển thị các phần tử lẻ ra màn hình.
  • Tìm trong danh sách các phần tử có giá trị chia hết cho 2 và 5.
  • In phần tử cuối cùng trong danh sách liên kết.
  • Kiểm tra phần tử kế cuối của danh sách là chẵn hay lẻ.  
  • Đếm xem trong danh sách có bao nhiêu giá trị x, với x được nhập từ bàn phím. 
  • Xuất ra màn hình giá trị của nút thứ k trong danh sách (k nhập từ bàn phím). 
  • Xóa phần tử lẻ trong danh sách.
  • Xóa phần tử chẵn trong danh sách. 

test php

Bài giải

-------------------- ######## --------------------

Bài giải
public static void main(String[] args) {
	int n;	// số phần tử trong danh sách
	int node;	// giá trị của phần tử trong danh sách
	Scanner scanner = new Scanner(System.in);
	Iterator<Integer> iterator;
		
	// khai báo một danh sách liên kết lưu trữ các số nguyên dương
	LinkedList<Integer> linkedList = new LinkedList<>();
		
	// khai báo một danh sách liên kết lưu trữ các số lẻ
	LinkedList<Integer> linkedListLe = new LinkedList<>();
		
	System.out.println("Nhập vào số phần tử của danh sách: ");
	n = scanner.nextInt();
		
	System.out.println("Nhập giá trị của các phần tử trong danh sách: ");
	for (int i = 0; i < n; i++) {
		System.out.print("Nhập phần tử thứ " + i +": ");
		node = scanner.nextInt();
		linkedList.add(node);
	}
		
	// tạo bản sao của linkedList
	// sử dụng phương thức clone()
	LinkedList<Integer> linkedListCopy = (LinkedList<Integer>) linkedList.clone();
		
	// HIỂN THỊ CÁC PHẦN TỬ LẺ CÓ TRONG DANH SÁCH RA MÀN HÌNH
	for (int i = 0; i < n; i++) {
		// số lẻ là số không chia hết cho 2
		// chúng ta sẽ kiểm tra phần tử thứ i trong linkedList
		// có chia hết chp 2 hay không
		// nếu có thì thêm phần tử đó vào trong linkedListLe
		if (linkedList.get(i) % 2 != 0) {
			linkedListLe.add(linkedList.get(i));
		}
	}
	System.out.println("\nCác phần tử lẻ có trong danh sách là: ");
	iterator = linkedListLe.iterator();
	while (iterator.hasNext()) {
		System.out.print(iterator.next() + "\t");
	}
		
	// TÌM TRONG DANH SÁCH CÁC PHẦN TỬ CÓ GIÁ TRỊ CHIA HẾT CHO 2 VÀ 5
	System.out.println("\nCác phần tử chia hết cho 2 và 5 có trong danh sách là: ");
	for (int i = 0; i < n; i++) {
		if ((linkedList.get(i) % 2 == 0) && (linkedList.get(i) % 5 == 0)) {
			System.out.print(linkedList.get(i) + "\t");
		}
	}
		
	// IN GIÁ TRỊ PHẦN TỬ CUỐI CÙNG TRONG DANH SÁCH LIÊN KẾT
	// sử dụng phương thức getLast()
	System.out.print("\nPhần tử cuối cùng trong danh sách = " + 
		linkedList.getLast() + "\n");
		
	// KIỂM TRA PHẦN TỬ KẾ CUỐI CỦA DANH SÁCH LÀ CHẴN HAY LẺ
	// phần tử kế cuối của danh sách 
	// là phần tử có chỉ số = size - 2.
	int ptKeCuoi = linkedList.get(linkedList.size() - 2);
	if (ptKeCuoi % 2 == 0) {
		System.out.println("Phần tử kế cuối = " + ptKeCuoi + " là số chẵn");
	} else {
		System.out.println("Phần tử kế cuối = " + ptKeCuoi + " là số lẻ");
	}
		
	// ĐẾM SỐ PHẦN TỬ CÓ GIÁ TRỊ = x TRONG DANH SÁCH 
	// x được nhập từ bàn phím
	int soPhanTu = 0;	// số phần tử có giá trị = x trong danh sách
	System.out.print("Nhập giá trị x: ");
	int x = scanner.nextInt();
	for (int i = 0; i < n; i++) {
		if (linkedList.get(i) == x) {
			soPhanTu++;
		}
	}
	System.out.println("Số phần tử có giá trị = " + x + 
		" trong danh sách là " + soPhanTu);
		
	// XUẤT RA MÀN HÌNH GIÁ TRỊ CỦA PHẦN TỬ THỨ k TRONG DANH SÁCH
	// k NHẬP TỪ BÀN PHÍM
	// giá trị của k phải lớn hơn 0 và nhỏ hơn số phần tử tối đa của danh sách
	System.out.print("Nhập số k: ");
	int k = scanner.nextInt();
	while (k < 0 || k > n - 1) {
		System.out.print("Nhập lại số k: ");
		k = scanner.nextInt();
	}
	System.out.print("Giá trị của phần tử thứ " + k + " trong danh sách = " + 
		linkedList.get(k));
	
	// XÓA PHẦN TỬ LẺ TRONG DANH SÁCH
	// sử dụng phương thức remove()
	for (int i = 0; i < n; i++) {
		if (linkedList.get(i) % 2 != 0) {
			linkedList.remove(linkedList.get(i));
			// sau khi xóa phần tử lẻ thì sẽ giảm số phần tử đi 1
			// và giảm i đi 1 (quay lại phần tử đứng trước nó)
			// và duyệt lại danh sách
			n--;
			i--;
		}
	}
	System.out.println("\nCác phần tử còn lại trong danh sách "
		+ "sau khi xóa đi các phần tử lẻ: ");
	iterator = linkedList.iterator();
	while (iterator.hasNext()) {
		System.out.print(iterator.next() + "\t");
	}
		
	// XÓA PHẦN TỬ CHẴN TRONG DANH SÁCH
	// tương tự như khi xóa phần tử lẻ
	int m = linkedListCopy.size();	
	for (int i = 0; i < m; i++) {
		if (linkedListCopy.get(i) % 2 == 0) {
			linkedListCopy.remove(linkedListCopy.get(i));
			// sau khi xóa phần tử chẵn thì sẽ giảm số phần tử đi 1
			// và giảm i đi 1 (quay lại phần tử đứng trước nó)
			// và duyệt lại danh sách
			m--;
			i--;
		}
	}
	System.out.println("\nCác phần tử còn lại trong danh sách "
		+ "sau khi xóa đi các phần tử chẵn: ");
	iterator = linkedListCopy.iterator();
	while (iterator.hasNext()) {
		System.out.print(iterator.next() + "\t");
	}
}

Kết quả sau khi biên dịch chương trình:

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

ketqua baitap4LinkedList PNG

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Cách sử dụng Spring  Scheduled trong Spring Boot

Cách sử dụng Spring Scheduled trong Spring Boot

Cách dùng Groovy trong Spring Boot Java

Cách dùng Groovy trong Spring Boot Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo ứng dụng Chat với Spring Boot và Websocket

Tạo ứng dụng Chat với Spring Boot và Websocket

Sử dụng JUnit để tạo unit test trong Spring Boot

Sử dụng JUnit để tạo unit test trong Spring Boot

Cách triển khai Spring Boot trên Tomcat Server

Cách triển khai Spring Boot trên Tomcat Server

Cách test RESTful API trong Spring Boot

Cách test RESTful API trong Spring Boot

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Top