#include<stdio.h>
#include <stdlib.h>
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
bool InitList(LinkList &L){
L=(LinkList)malloc(sizeof(LNode));
L->next =NULL;
return true;
}
void CreateByHead(LinkList &L,int n){
L=(LinkList)malloc(sizeof(LNode));
L->next =NULL;
int i;
for(i=0;i<5;i++){
LNode *p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
void CreateByTail(LinkList &L,int n){
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
LNode *r=L;
for(int i=0;i<5;i++){
LNode *p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=NULL;
r->next=p;
r=p;
}
}
int GetLength(LinkList L){
LNode *p;
p=L->next;
int len=0;
while(p){
++len;
p=p->next;
}
return len;
}
LNode *GetElemBySide(LinkList &L,int i){
if(i<1) return 0;
int j=1;
LNode *p=L->next;
while(p&&j<i)
{
p=p->next;
++j;
}
return p;
}
LNode *GetElemByLocate(LinkList &L,int e){
LNode *p=L->next;
while(p&&p->data!=e)
p=p->next;
return p;
}
void print(LinkList L)
{
LNode *p;
p = L->next;
while(p)
{
printf("%d ",p->data);
p = p->next;
}
}
int main(){
LinkList L;
CreateByTail(L,5);
print(L);
int i=GetLength(L);
printf("获取长度\n");
printf("\n%d",i);
LNode *s=GetElemBySide(L,2);
printf("\n%d",s->data);
LNode *t=GetElemByLocate(L,45);
printf("%d",t);
}