#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define maxsize 30
typedef struct linknode
{
char data;
struct linknode *next;
}Linklist;
bool InitSqlist(Linklist *head)
{
if(head == NULL)
{
return false;
}
else
{
head->next=NULL;
return true;
}
}
void InsertSqlistByHead(Linklist *head,int n)
{
int val;
Linklist *p;
while(n--)
{
scanf("%d",&val);
p=(Linklist *)malloc(sizeof(Linklist));
p->data=val;
p->next=head->next;
head->next=p;
}
}
void InsertSqlistByRear(Linklist *head,int n)
{
int val;
Linklist *pRear=head;
Linklist *p;
while(n--)
{
scanf("%d",&val);
p=(Linklist *)malloc(sizeof(Linklist));
p->data=val;
pRear->next=p;
p->next=NULL;
pRear=p;
}
}
void DeleteSqlist(Linklist *head,int val)
{
Linklist *pCurrent,*pforead;
pCurrent=(Linklist *)malloc(sizeof(Linklist));
pforead=(Linklist *)malloc(sizeof(Linklist));
pCurrent=head->next;
pforead=head;
if(pCurrent->data != val)
{
pCurrent=pCurrent->next;
pforead=pforead->next;
if(pCurrent==NULL)
{
printf("error\n");
return;
}
}
pforead->next=pCurrent->next;
free(pCurrent);
pCurrent=NULL;
}
void ChangeSqlist(Linklist *head,int n)
{
}
Linklist *resevertList(Linklist *head)
{
Linklist *pRev=NULL;
Linklist *cur=head;
while(cur)
{
Linklist *next=cur->next;
cur->next=pRev;
pRev=cur;
cur=next;
}
return pRev;
}
void PrintfSqlist(Linklist *head)
{
Linklist *p;
p=(Linklist *)malloc(sizeof(Linklist));
p=head->next;
while(p != NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
int main()
{
Linklist *L;
InitSqlist(L);
InsertSqlistByRear(L,3);
PrintfSqlist(L);
DeleteSqlist(L,2);
PrintfSqlist(L);
return 0;
}