資料結構上機測試2-1:單鏈表操作A
阿新 • • 發佈:2018-12-10
#include <stdio.h> #include <string.h> #include <stdlib.h> int sum; struct node { int data; struct node *next; }; struct node* c(int n) { struct node*head,*tail,*p; head=(struct node*)malloc(sizeof(struct node)); head->next=NULL; tail=head; int i; for(i=1; i<=n; i++) { p=(struct node*)malloc(sizeof(struct node)); scanf("%d",&p->data); p->next=NULL; tail->next=p; tail=p; } return head; }; void print(struct node*head) { struct node*p; p=head->next; while(p) { printf("%d",p->data); if(p->next) printf(" "); else printf("\n"); p=p->next; } } void del(struct node *head,int x) { struct node*p,*q; p=head; q=p->next; while(q) { if(q->data==x) { p->next=q->next; free(q); q=p->next; sum++; } else { p=p->next; q=q->next; } } } int main() { int n,m; sum=0; struct node*head; scanf("%d",&n); head=c(n); scanf("%d",&m); printf("%d\n",n); print(head); del(head,m); printf("%d\n",n-sum); print(head); return 0; }