mấy bác giải giúp hộ em hai bai môn cấu trúc dữ liệu này cái, mai ktra mất tiu 1, Tìm các nút có giá trị lẻ 2, Đảo mảng Thank mấy bác trước
không đúng đừng chém nha bài 1 đây bạn ah Mã: #include<iostream.h> #include<stdio.h> #include<conio.h> //Khai bao cau truc struct node { int pt; struct node *next; }; typedef node list; list *first,*ds2,*last; //Xoa sach cac node trong danh sach va khoi tao danh sach void clear_list(list **first) { list *p=*first; while(*first!=NULL) { *first=p->next; delete(p); p=*first; } } //In danh sach void print_list(list *first) { if(first==NULL) printf("\nDanh sach rong"); else { list *p=first; printf("\nDanh sach:\n "); while(p!=NULL) { printf("%d\t", p->pt); p=p->next; } } } //Tao danh sach moi void create_list(list **first) { int n; list *p; printf("\nNhap gia tri: "); scanf("%d",&n); while(n!=0) { p=new node; p->pt=n; if(*first==NULL) *first=p; else last->next=p; last=p; p->next=NULL; printf( "\nNhap gia tri: "); scanf("%d",&n); } } void thaythe(list **first) { list *p=*first; while(p!=NULL) { if((p->pt)%2!=0) p->pt=((p->pt)*(p->pt)); p=p->next; } } void main() { clear_list(&first); create_list(&first); print_list(first); thaythe(&first); print_list(first); getch(); } Bài 2: chỉ có thủ tục thôi bạn bổ sung thêm hàm nhập nhé Mã: void daomang(int a[],int n) { int tmp,j=0; for(int i=n-1;i>=(n/2);i--) { tmp=a[j]; a[j]=a[i]; a[i]=tmp; j++; } }
lão trungqn1 chém gió quá p/s: bạn o0o học lớp nào vậy, mai thầy đổi đề cho coi , đề này lớp mình mới kiểm tra chiều nay
cái này không ổn. làm sao lấy kết quả ra được vì p=p->next. Cơ bản là thế này nhé: Mã: int find(list **T) { list *P,*Q; P=*T,Q=*T; int count =0; while(P->link != NULL) { count++; if(P->pt%2 != 0) { xoa(count,&Q); int u=(P->pt)*(P->pt); chensau(u,&Q,count); } P=P->link; } *T=Q; } các hàm di kèm liên qua là: chensau(u,&Q,count) u: số cần chèn . Q: danh sách cần chèn. count: vị trí chèn. xoa(count,&Q) count: vị trí xóa. Q: danh sách cần xóa các hàm xóa và chèn tại vị trí xác định trong danh sách các bạn viết được phía trên rồi.
code bạn trungqn1 post là mình code đấy, chạy hoàn toàn OK bạn chú ý con trỏ firist, mình dùng nó để trỏ đầu danh sách mà
Cho mình góp ý tí nha. Các bạn viết khó đọc wa. mình nên dùng ->next (trỏ tới), ->prev(trỏ ngược lại sau) như thế người đọc sẽ dễ phân biệt hơn
2 con trỏ như vậy thì thường thì cho danh sách liên kết kép mà , phần này hok học nên mình hok dám chắc