王道C语言导学班 中级day4作业
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
/*输入3 4 5 6 7 9999一串整数,
9999代表结束,通过头插法新建链表,并输出,
通过尾插法新建链表并输出。*/
typedef struct Lnode {
int data;
struct Lnode* next;
}Lnode,*Linklist;
//尾插法
Linklist creatlist2(Linklist& L) {
L = (Lnode*)malloc(sizeof(Lnode));
int a;
Lnode* p, * q;
q = L;
scanf("%d",&a);
while (a != 9999) {
p = (Lnode*)malloc(sizeof(Lnode));
p->data = a;
q->next = p;
q = p;
scanf("%d", &a);
}
q->next = NULL;
return L;
}
//头插法
Linklist creatlist1(Linklist &L) {
L = (Lnode*)malloc(sizeof(Lnode));
L->next = NULL;
int a=0;
Lnode* p;
scanf("%d", &a);
while(a!=9999){
p = (Lnode*)malloc(sizeof(Lnode));
p->data = a;
p->next = L->next;
L->next = p;
scanf("%d", &a);
}
return L;
}
void printlist(Linklist L) {
L = L->next;
while (L!=NULL) {
printf("%3d", L->data);
L = L->next;
if (L != NULL) {
printf(" ");
}
}
printf("\n");
}
int main() {
Linklist L;
creatlist1(L);
printlist(L);
Linklist P;
creatlist2(P);
printlist(P);
}