Hiển thị danh sách liên kết đôi theo chiều đảo ngược trong C
Bài tập C: Hiển thị danh sách liên kết đôi theo chiều đảo ngược
Bài tập C này giúp bạn làm quen dần với cách tạo danh sách liên kết đôi và cách hiển thị danh sách liên kết đôi trong C. Để giải bài tập này, mình sử dụng cấu trúc struct trong C.
Chương trình C
Dưới đây là chương trình C để giải bài tập hiển thị danh sách liên kết đôi theo chiều đảo ngược trong C:
#include#include struct node { int data; struct node *prev; struct node *next; };struct node *head = NULL; struct node *last = NULL;struct node *current = NULL;//hien thi list void printList() { struct node *ptr = head; printf("\n[head] <=>"); //bat dau tu phan dau cua list while(ptr != NULL) { printf(" %d <=>",ptr->data); ptr = ptr->next; } printf(" [last]\n"); }//hien thi list void print_backward() { struct node *ptr = last; printf("\n[head] <=>"); //bat dau tu phan dau cua list while(ptr != NULL) { printf(" %d <=>",ptr->data); ptr = ptr->prev; } printf(" [last]\n"); }//tao danh sach lien ket void insert(int data) { // cap phat bo nho cho node moi; struct node *link = (struct node*) malloc(sizeof(struct node)); link->data = data; link->prev = NULL; link->next = NULL; // neu head la trong, tao list moi if(head==NULL) { head = link; return; } current = head; // di chuyen toi phan cuoi list while(current->next!=NULL) current = current->next; // chen link vao phan cuoi cua list current->next = link; last = link; link->prev = current; }int main() { insert(10); insert(20); insert(30); insert(1); insert(40); insert(56); printList(); print_backward(); return 0; }
Biên dịch chương trình C trên sẽ cho kết quả:
Bài học Bài tập C phổ biến tại hoconline.club:
danh-sach-lien-ket-trong-c.jsp
Bài viết liên quan