输入3 4 5 6 7 9999一串整数,9999代表结束,通过头插法新建链表,并输出,通过尾插法新建链表并输出。
注意输出要采用如下代码(因为OJ判题对空格敏感,因此需要用下面的打印代码来做):
//打印链表中每个结点的值
#include <stdio.h>
#include <stdlib.h>
typedef int ElementType ;
typedef struct LNode
{
ElementType data;//数据域
struct LNode *next;//指针域
//一个内容包含有数据和next指针
}LNode,*LinkList;
void list_header_insert(LNode *&L){
L=(LNode *) malloc(sizeof(LNode));
L->next=NULL;
LNode *s;
ElementType x;
scanf("%d",&x);
while (x!=9999)
{
s=(LNode *) malloc(sizeof(LNode));
s->data=x;
s->next=L->next;
L->next=s;
scanf("%d",&x);
}
}
void list_tail_insert(LNode *&L){
L=(LNode *) malloc(sizeof(LNode));
LNode *s,*r=L;
ElementType x;
scanf("%d",&x);
while (x!=9999)
{
s=(LNode *) malloc(sizeof(LNode));
s->data=x;
r->next=s;
r=s;
scanf("%d",&x);
}
r->next=NULL;
}
void Print(LinkList L)
{
L=L->next;
while(L)
{
printf("%d",L->data);
L=L->next;//eg 3 4 5,头插 走到3,
if(L!=NULL){//L代表的是next,所以是L的next指向NULL,3的next=null
printf(" ");
}
}
printf("\n");
}
int main() {
LinkList L;
list_header_insert(L);
Print(L);
list_tail_insert(L);
Print(L);
return 0;
}