#include<stdio.h>
#include<stdlib.h>
struct node

{
int data;
struct node *next;
};//結構類型的說明
struct node *stack(struct node *head)

{
int i;
struct node *p;
p = (struct node*)malloc(sizeof(struct node));
p->next = NULL;
for(i=0;i<10;i++)
{
head = (struct node*)malloc(sizeof(struct node));
p->data = i;
head->next = p;
p = head;;
}
return (head);
}//棧
struct node *team(struct node *head)

{
int i;
struct node *tail,*p;
head = (struct node*)malloc(sizeof(struct node));
tail = head;
for(i=0;i<10;i++)
{
p = (struct node*)malloc(sizeof(struct node));
p->data = i;
tail->next = p;
tail = p;
}
tail->next = NULL;
return (head);
}//隊列
void print_list(struct node *head)

{
struct node *p;
p = head->next;
printf("Begin");
while(p != NULL)
{
printf("->%d",p->data);
p = p->next;
}
printf("->End\n");
}//鏈表輸出
void detele_x(struct node *head,int x)

{
struct node *p,*q;
p = head;
q = head->next;
while(q->data != x && q->next != NULL)
{ p = q; q = q->next; }
if(q->data == x)
p->next = q->next;
free(q);
}//刪除數據域為x的結點
void add_x_y(struct node *head,int x,int y)

{
struct node *add_new,*p,*q;
add_new = (struct node*)malloc(sizeof(struct node));
add_new->data = x;
p = head;
q = head->next;
while(q != NULL && q->data != y)
{ p = q; q = q->next; }
p->next = add_new;
add_new->next = q;
}//在數據為y的結點前插入數據域為x的結點


