Lập trình C nâng cao bài 24: Hướng dẫn sửa một phần tử trong danh sách liên kết đơn

412

Chào mừng các bạn đã đến với học viện công nghệ Vietpro

Trong bài học trước các bạn đã được hướng dẫn tìm kiếm một phần tử trong danh sách liên kết đơn

Bài học lần này sẽ giúp các bạn có thể hiểu về cách sửa một phần tử trong danh sách liên kết đơn trong lập trình C. Chúng ta cùng tìm hiểu nhé.

[VIDEO TUT]

Bấm Subscribe Nhận video học mới nhất :

Chú ý: Các bạn lựa chọn video ở chế độ 720HD để xem được chất lượng hình ảnh và âm thanh tốt nhất nhé.

Sửa một phần tử

Để sửa một phần tử trong danh sách liên kết đơn, trước hết ta phải tạo danh sách liên kết đơn và nhập giá trị cho nó. Tiếp theo ta yêu cầu người dùng nhập phần tử muốn thay đổi và nhập giá trị muốn thay đổi. Cụ thể:

#include<stdio.h>
#include<stdlib.h>
struct SoNguyen{
	int dulieu;
	struct SoNguyen *tiep;
};
void taoDanhSach(SoNguyen *&pdau){
	int repeat;
	SoNguyen *p;
	do{ // de cho nguoi dung nhap vao so luong tuy y
		if(pdau == NULL){ //Neu p dau rong
			pdau = (SoNguyen*)malloc(sizeof(SoNguyen)); //cap phat bo nho cho p
			p = pdau;
		}else{  //neu nhu no co gia tri roi thi p se tro den tiep 
				// va cap phat bo nho cho no
			p = pdau;
			while (p->tiep !=NULL) p = p->tiep;
			p->tiep = (SoNguyen*)malloc(sizeof(SoNguyen));
			p = p->tiep;
		}
		printf("Nhap du lieu cho danh sach : \n");
		scanf("%d",&(p->dulieu));
		p->tiep = NULL;
		printf("Ban co muon tiep tuc hay khong ?");
		scanf("%d",&repeat);
	}while(repeat  != 0);
}
int suaDuLieu(SoNguyen *&pdau){
	int value1,value2;
	printf("Moi ban nhap gia tri ma ban muon sua : \n");
	scanf("%d",&value1);
	SoNguyen *p = pdau;
	if(pdau == NULL) return 0; // khong tim thay phan tu
	while (p != NULL){
		if(p->dulieu == value1){
			printf("Moi ban nhap du lieu moi : \n");
			scanf("%d",&value2);
			p->dulieu = value2;
			return 1;
		}
	}
	return 0;
}
void inDanhSach(SoNguyen *&pdau){
	SoNguyen *p = pdau;
	if(pdau == NULL) return;
	while(p != NULL){
		printf("%d\t",p->dulieu);
		p = p->tiep;
	}
}
int main(){
	SoNguyen *pdau = NULL;	
	taoDanhSach(pdau);
	if(suaDuLieu(pdau)== 1){
		inDanhSach(pdau);
		}else{
		printf("Khong tim thay de sua");
		}
	return 0;
}

Kết quả:

Bài học đến đây là kết thúc. Trong bài tiếp theo, các bạn sẽ được hướng dẫn xóa một phần tử trong danh sách liên kết đơn.

Chúc các bạn học tốt

Tác giả: Danh Sơn Vietpro

No votes yet.
Please wait...

BÌNH LUẬN