#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct LNode {
ElemType data;//数据域
struct LNode *next;
} LNode, *LinkList;
//LNode*是结构体指针,和LinkList完全等价的
//输入3,4,5,6,7,9999
void List_Insert(LinkList &L) {
L = (LinkList) malloc(sizeof(LNode));//头指针指向头节点
// L是头指针
//(LinkList)malloc(sizeof (LNode)) 是头指针,等号的作用就是让头指针的作用域指向头节点
ElemType x;
scanf("%d", &x);
LNode *s;//申请一个指针变量;
s = (LinkList) malloc(sizeof(LNode));//让s这个指针指向新增的这个节点
s->data = x;
s->next = NULL;
L->next = s;//头节点的指针指向了第一个带数据的节点
while (x != -1) {
scanf("%d", &x);
s = (LinkList) malloc(sizeof(LNode));
s->data = x;
s->next = L->next;
L->next = s;
}
}
void Printf_List(LinkList L) {
L = L->next;//L 最开始指向的就是头节点,但是头节点是指向空节点----就是这个节点不含有数据,只有指针数据
// L->next;就是说让L 这个指针指向第一个带数据的节点
while (L != NULL) {//判断是否是到达链表尾部
printf("%3d", L->data);
L = L->next;
}
printf("\n");//美观意图
}
int main() {
//std::cout << "Hello, World!" << std::endl;
LinkList L;
List_Insert(L);
Printf_List(L);
return 0;
}
以上使用c++完成,但是 与运行结果有些问题:
放图:
因为-1是作为终止条件,按理说不应加入队列中
改进版
#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct LNode {
ElemType data;//数据域
struct LNode *next;
} LNode, *LinkList;
//LNode*是结构体指针,和LinkList完全等价的
//输入3,4,5,6,7,9999
void List_Insert(LinkList &L) {
L = (LinkList) malloc(sizeof(LNode));//头指针指向头节点
L ->next =NULL;
// L是头指针
//(LinkList)malloc(sizeof (LNode)) 是头指针,等号的作用就是让头指针的作用域指向头节点
ElemType x;
scanf("%d", &x);
LNode *s;//申请一个指针变量;
// s = (LinkList) malloc(sizeof(LNo