#include <stdio.h>
#include <stdlib.h>
//输入3 4 5 6 7 9999一串整数,9999代表结束,通过头插法新建链表,并输出,通过尾插法新建链表并输出。
//
//注意输出要采用如下代码(因为OJ判题对空格敏感,因此需要用下面的打印代码来做):
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
//头插法创建链表
void list_head_insert(LinkList &L){
L= (LinkList)malloc(sizeof (LNode));//为头结点申请空间
LinkList s;//第一个结点
ElemType x;//赋值
L->next=NULL;
scanf("%d",&x);
while (x!=9999){
s= (LinkList)malloc(sizeof (LNode));//为第一个结点申请空间
s->data=x;
s->next=L->next;
L->next=s;
scanf("%d",&x);
}
}
//尾插法创建链表 引用
void list_tail_insert(LNode* &L){
L= (LinkList)malloc(sizeof (LNode));//为头结点申请空间
LinkList s;//第一个结点
LinkList r;//定义尾指针用来遍历
ElemType x;//赋值
L->next=NULL;
r=L;
scanf("%d",&x);
while (x!=9999){
s= (LinkList)malloc(sizeof (LNode));//为第一个结点申请空间
s->data=x;
r->next=s;
r=s;
scanf("%d",&x);
}
r->next=NULL;
}
//打印链表
void PrintList(LinkList L)
{
L=L->next;
while(L!=NULL)
{
printf("%d",L->data);//打印当前结点数据
L=L->next;//指向下一个结点
if(L!=NULL)
{
printf(" ");
}
}
printf("\n");
}
int main() {
LinkList L;//L是链表头指针,是结构体指针类型
//头插法创建链表
list_head_insert(L);//输入数据可以为3 4 5 6 7 9999,头插法新建链表
PrintList(L);//打印链表
//尾插法创建链表
list_tail_insert(L);
PrintList(L);//打印链表
return 0;
}
王道c语言督学营课时11作业
最新推荐文章于 2025-01-31 18:27:03 发布