#include <stdio.h>
#include <stdlib.h>
#define N 9
typedef struct node
{
int data;
struct node *next;
}ElemSN;
ElemSN *Createlink(int a[],int n){
int i;
ElemSN *h,*p;
h=p=(ElemSN*)malloc(sizeof(ElemSN));
h->next=NULL;
for(i=0;i<N;i++){
p=p->next=(ElemSN*)malloc(sizeof(ElemSN));
p->data=a[i];
p->next=NULL;
}
return h;
}
void DelkeyNode(ElemSN*h,int key){
ElemSN *p,*delp;
for(p=h;p->next&&p->next->data-key;p=p->next);
if(!p->next)
printf("Not found!\n");
else {
delp=p->next;
p->next=delp->next;
free(delp);
delp=NULL;
}
}
void Printlink(ElemSN *h){
ElemSN *p;
for(p=h;p->next;p=p->next)
printf("%2d\n",p->next->data);
}
int main(void){
int a[N]={1,2,3,4,5,6,7,8,9};
int key;
ElemSN *head;
head=Createlink(a,9);
printf("key=");
scanf("%d",&key);
DelkeyNode(head,key);
Printlink(head);
}
原文地址:http://blog.51cto.com/13645380/2154832