C語言:連結串列建立 頭插法 尾插法
阿新 • • 發佈:2018-12-31
#include<stdio.h> #include<stdlib.h> struct list { int data; struct list *next; }; int i; void output(struct list *head); void creat(struct list *head, int n)//頭插法 { struct list *p, *q; head->next=NULL; p=head; for(i=0; i<n; i++) { q=(struct list*)malloc( sizeof(struct list) ); scanf("%d", &q->data); q->next = p->next; p->next=q; p=q; } } void creat_1(struct list *head, int n)//尾插法 { struct list *p; head->next=NULL; for(i=0; i<n; i++) { p=(struct list*)malloc( sizeof(struct list) ); scanf("%d", &p->data); p->next=head->next; head->next=p; } } void output(struct list *head) { struct list *p=head->next; while(p) { printf("%d ", p->data); p=p->next; } puts("\n\n"); } void main() { struct list *head; head=(struct list*)malloc( sizeof(struct list) ); creat(head, 5); output(head); creat_1(head, 5); output(head); }