#define NULL 0什么意思
2010-04-15 08:37提问者: wyy孳孳linda |浏览次数:1372次
#include <stdio.h>
#include <malloc.h>
#define NULL 0
typedefstruct node
{
int data;
struct node *next;
}linklist;
void input(linklist *L) /*输入函数*/
{
linklist *r,*p;
p=(linklist *)malloc(sizeof(node));sizeof是什么
#include <malloc.h>
#define NULL 0
typedefstruct node
{
int data;
struct node *next;
}linklist;
void input(linklist *L) /*输入函数*/
{
linklist *r,*p;
p=(linklist *)malloc(sizeof(node));sizeof是什么
r=L;
printf("input nums(-1 to quit): ");
scanf("%d",&p->data);
while(p->data!=-1)
{
r->next=p;
r=p;
p=(linklist *)malloc(sizeof(node));
scanf("%d",&p->data);
}
r->next=NULL;
}
void mergelist(linklist *A,linklist *B,linklist *C) /*两单链表合并函数*/
{
linklist *p,*q,*r;
printf("input nums(-1 to quit): ");
scanf("%d",&p->data);
while(p->data!=-1)
{
r->next=p;
r=p;
p=(linklist *)malloc(sizeof(node));
scanf("%d",&p->data);
}
r->next=NULL;
}
void mergelist(linklist *A,linklist *B,linklist *C) /*两单链表合并函数*/
{
linklist *p,*q,*r;
p=A->next; /*A的第一个节点*/
q=B->next;
r=A;
while(p && q)
{
if(p->data<q->data)
{
r->next=p;
r=p;
p=p->next;
}
else if(p->data==q->data)
{
r->next=p;
r=p;
q=B->next;
r=A;
while(p && q)
{
if(p->data<q->data)
{
r->next=p;
r=p;
p=p->next;
}
else if(p->data==q->data)
{
r->next=p;
r=p;
p=p->next;
q=q->next;
}
else
{
r->next=q;
r=q;
q=q->next;
}
}
if(p)
r->next=p;
if(q)
r->next=q;
}
q=q->next;
}
else
{
r->next=q;
r=q;
q=q->next;
}
}
if(p)
r->next=p;
if(q)
r->next=q;
}
void output(linklist *L) /*输出函数*/
{
linklist *p;
p=L->next;
while(p)
{
printf("%2d",p->data);
p=p->next;
}
printf("\n");
}
void main()
{
linklist *LA,*LB,*LC;
LA=(linklist *)malloc(sizeof(linklist));
{
linklist *p;
p=L->next;
while(p)
{
printf("%2d",p->data);
p=p->next;
}
printf("\n");
}
void main()
{
linklist *LA,*LB,*LC;
LA=(linklist *)malloc(sizeof(linklist));
LB=(linklist *)malloc(sizeof(linklist));
printf("对链表LA进行初始化!\n");;
input(LA);
output(LA);
printf("对链表LB进行初始化!\n");
input(LB);
output(LB);
LC=LA;
mergelist(LA,LB,LC);
printf("链表LA和LB合并后为: ");
output(LC);
}
printf("对链表LA进行初始化!\n");;
input(LA);
output(LA);
printf("对链表LB进行初始化!\n");
input(LB);
output(LB);
LC=LA;
mergelist(LA,LB,LC);
printf("链表LA和LB合并后为: ");
output(LC);
}
我来帮他解答
满意回答
2010-04-15 10:30
#define 是宏定义语句,后面加NULL 0 表示把NULL定义成0,
实际上,在编译器工作时候,第一步就是对原文件进行预处理,
首先把#include的文件展开,然后把文件中所有用#define定义的宏用其值替换,对于你这个来说,就是在预处理的时候,把所有的NULL用0进行了替换
实际上,在编译器工作时候,第一步就是对原文件进行预处理,
首先把#include的文件展开,然后把文件中所有用#define定义的宏用其值替换,对于你这个来说,就是在预处理的时候,把所有的NULL用0进行了替换
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论