`/*
练习写一个链表
2019-6-14 18:32:56
*/
include<stdio.h>
struct node{
int x,y;
struct node* next;
};
struct node* create(int n);
int search(struct node* head,int x1,int y1);
void _delete(struct node* head, int num );
void destroy(struct node* head);
int main()
{
int n,x1,y1,num;
struct node* head;
scanf("%d",&n);
head = create(n);
search(head,x1,y1);
_delete(head,num);
destroy(head);
return 0;
}
struct node* create(int n ){
int i;
struct node * head ,newnode,last;
head = (struct node)malloc(sizeof(struct node));
last = head;
head->next = NULL;/保存尾结点的链接域为NULL,表明后面没有结点/
for(i=1;i<=n;i++)
{
newnode = (struct node)malloc(sizeof(struct node ));
scanf("%d%d",&(newnode->x),&(newnode->y));
newnode->next = NULL;
last->next = newnode;
last = last->next;
}
return head;
}
int search(struct node* head,int x1,int y1)
{
struct node* p;
p = head;
while(p->next)
{
p = p->next;
if(p->xx1&&p->yy1)
break;
}
if(p->xx1&&p->yy1) return 1;
else return 0;
}
void _delete(struct node* head ,int num )
{
struct node* pre ,* p;
p = head;
while(p->next)
{
pre = p;
p = p->next;
if(p->x+p->y==num)
{
pre->next = p->next;
free§;
break;
}
}
return;
}
void destroy(struct node* head){
struct node* p;
while(head){
p = head;
head = head->next;
free§;
}
return;
}`