using namespace std;
typedef struct LNode{
int data;
struct LNode *next;
}LNode, *LinkList;
int InitList(LinkList &L){
L = (LinkList)malloc(sizeof(LNode));
if(L==NULL) return 0;
L->next = NULL;
return 1;
}
void InsertAtHead(LinkList &La, int n){
La = (LinkList)malloc(sizeof(LNode));
La->next = NULL;
int i, x;
for(i=0;i<n;i++){
scanf("%d", &x);
LNode *p = (LNode *)malloc(sizeof(LNode));
p->data = x;
p = La->next;
La->next = p;
}
LNode *q = La->next;
while(q){
printf("%d", q->data);
q = q->next;
}
}
void InsertAtTail(LinkList Lb, int m){
Lb = (LinkList)malloc(sizeof(LNode));
Lb->next = NULL;
LNode *p = Lb;
int i, x;
for(i=0; i<m;i++){
scanf("%d" ,&x);
LNode *q = (LNode *)malloc(sizeof(LNode));
q->data = x;
p->next = q;
q->next = NULL;
p = q;
}
LNode *r = Lb->next;
while(r){
printf("%d", r->data);
r = r->next;
}
}
void PrintList(LinkList L){
LNode *p = L->next;
while(p){
printf("%d", p->data);
p = p->next;
}
}
void ReverseList_1(LinkList L){
LNode *p = L->next;
L->next = NULL;
LNode *r;
while(p!=NULL){
r = p->next;
p->next = L->next;
L->next = p;
p = r;
}
}
void ReverseList_2(LinkList L){
LNode *p, *pre, *r;
p = L->next;
pre = L;
r = p->next;
p->next = NULL;
while(r!=NULL){
pre = p;
p=r;
r = r->next;
p->next=pre;
}
L->next = p;
}
void MergeList(LinkList La, LinkList Lb, LinkList &Lc){
Lc = (LNode *)malloc(sizeof(LNode));
Lc->next = NULL;
LNode *pa = La->next;
LNode *pb = Lb->next;
LNode *p = Lc;
while(pa!=NULL && pb!=NULL){
LNode *pc = (LNode *)malloc(sizeof(LNode));
p->next = pc;
pc->next = NULL;
if(pa->data<=pb->data){
pc->data = pa->data;
p=pc;
pa = pa->next;
}
else{
pc->data = pb->data;
p=pc;
pb = pb->next;
}
}
while(pa!=NULL){
LNode *pc = (LNode *)malloc(sizeof(LNode));
p->next = pc;
pc->next = NULL;
pc->data = pa->data;
p=pc;
pa = pa->next;
}
while(pb!=NULL){
LNode *pc = (LNode *)malloc(sizeof(LNode));
p->next = pc;
pc->next = NULL;
pc->data = pb->data;
pc=pc->next;
pb = pb->next;
}
LNode *r = Lc->next;
while(r){
int i = r->data;
printf("%d", i);
r = r->next;
}
}
void DelOdd(LinkList &L){
LNode *pre, *p, *u;
p=L->next;
pre = L;
while(p){
if(p->data%2!=0){
pre->next = p->next;
u=p;
printf("%d", u->data);
p=p->next;
}
else{
pre = p;
p = p->next;
}
}
}
int main () {
LinkList La;
InsertAtTail(La,3);
LinkList Lb;
InsertAtTail(Lb,3);
}