单链表的头插法和尾插法(C语言实现)
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
typedef int Elemtype;
typedef int Status;
typedef struct LNode{
Elemtype data;
struct LNode *next;
}LNode,*Linklist;
void Creatlist_L(Linklist &L,int n){ //头插法
L=(Linklist)malloc(sizeof(LNode));
L->next=NULL;
for(int i=n;i>0;i--){
LNode *p;
p=(Linklist)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
void Display_L(Linklist L){ //显示
Linklist p;
p=L->next;
while(p){
printf("%d\n",p->data);
p=p->next;
}
}
void Creatlist_LL(Linklist &L,int n){
L=(Linklist)malloc(sizeof(LNode));
L->next=NULL;
Linklist r;
r=L;
for(int i=0;i<n;i++){
Linklist p;
p=(Linklist)malloc(sizeof(LNode));
p->next=NULL;
scanf("%d",&p->data);
r->next=p;
r=p;
}
}
int main()
{
Linklist L;
int n;
scanf("%d",&n);
Creatlist_L(L,n); //头插法
Display_L(L); //显示
scanf("%d",&n);
Creatlist_LL(L,n); //尾插法
Display_L(L); //显示
}