#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
}*pnode,node;
pnode init(void)
{
pnode H=(pnode)malloc(sizeof (node));
if(H){
H->data=0;
H->next=NULL;
}
return H;
}
void HeadInsert(pnode H,int x)
{
pnode p=(pnode)malloc(sizeof (node));
pnode s=H;
p->data=x;
p->next=s->next;
s->next=p;
// H->data++;
}
void taileInsert(pnode H,int x)
{
pnode p=(pnode)malloc(sizeof (node));
pnode q=H;
pnode l=H;
int count=-1;
int i;
while(q)
{
q=q->next;
count++;
}
for(i=0;i<count;i++){
l=l->next;
}
p->next=NULL;
p->data=x;
l->next=p;
}
int Deletel(pnode H,int x){
pnode p,q;
p=H;
q=H->next;
while(q){
if(q->data==x){
p->next=q->next;
free(q);
return 1;
}
p=q;
q=q->next;
}
return 0;
}
void pri(pnode H){
pnode p=H;
while (p) {
p=p->next;
printf("%d\n",p->data);
}
}
void selete(pnode H,int x){
pnode p=H;
int i=0;
while (p&&i<=x) {
if(x==i){
printf("%d,%d\n",x,p->data);
break;
}
i++;
p=p->next;
}
if(!p||x!=i){
printf("wu");
}
}
void reverse(pnode L){
pnode p,q,s;
p=NULL;
q=L->next;
while (q!=NULL) {
s=q->next;
q->next=p;
p=q;
q=s;
}
L->next=p;
}
pnode reverse1(pnode l)
{
pnode p,q,r;
if(l==NULL){
return l;
}
p=l;
r=q=NULL;
while (p) {
q=p->next;
p->next=r;
r=p;
p=q;
}
return r;
}
int main()
{
pnode H=init();
HeadInsert(H,2);
HeadInsert(H,3);
HeadInsert(H,4);
taileInsert(H,5);
taileInsert(H,6);
// if(Deletel(H,5)==1){
// printf("chengg");
// }else {
//printf("shibai");
//}
// selete( H,1);
//reverse(H);
pri(H);
return 0;
}