#include <stdio.h>
#include<stdlib.h>
#include<stdbool.h>
typedef struct LNode{
int data;
struct LNode *next;
}LinkList;
typedef struct DLNode{
int data;
struct DLNode* prev,* next;
}DLinkList;
LinkList* List_InsertHead(LinkList *h){
int x;LinkList* s;
h = (LinkList*)malloc(sizeof(LinkList));
h->next = NULL;
scanf("%d",&x);
while(x!=-1){
s = (LinkList*)malloc(sizeof(LinkList));
s->data = x;
s->next = h->next;
h->next = s;
scanf("%d",&x);
}
return h;
}
LinkList* List_InsertTail(LinkList* h){
int x;LinkList* t = h;LinkList* s;
h = (LinkList*)malloc(sizeof(LinkList));
t = h;
t->next=NULL;
scanf("%d",&x);
while(x!=-1){
s = (LinkList*)malloc(sizeof(LinkList));
s->data = x;
s->next = NULL;
t->next = s;
t = s;
scanf("%d",&x);
}
return h;
}
LinkList* GetElem(LinkList *h,int i){
LinkList* p = h->next;
int j = 1;
if(i==0){
return h;
}
if(i<0){
return NULL;
}
while(j<i){
p = p->next;
j++;
}
return p;
}
LinkList* LocateElem(LinkList* h,int i){
LinkList* p = h->next;
while(p&&p->data!=i){
p = p->next;
}
return p;
}
bool List_Insert(LinkList* h,int i,int x){
if(i<=0){
return false;
}
LinkList* prev=GetElem(h,i-1);
LinkList* s=(LinkList*)malloc(sizeof(LinkList));
s->data = x;
s->next = prev->next;
prev->next = s;
return true;
}
bool List_Del(LinkList* h,int i){
if(i<=0){
return false;
}
LinkList* prev = GetElem(h,i-1);
LinkList* temp = prev->next;
prev->next = temp->next;
free(temp);
return true;
}
bool Link_Del_Same(LinkList* h,int x){
}
int List_Length(LinkList* h){
int i = 0;
LinkList* s = h;
while(s->next!=NULL){
s = s->next;
i++;
}
return i;
}
void main(){
LinkList* L1;
L1 = List_InsertTail(L1);
printf("%d",List_Length(L1));
}