c语言的链表输入函数,请教两道C语言程序!

#include"stdio。h"

#include"malloc。h"

#define len sizeof(struct price)

struct price

{int num;

int num2;

struct price *next;

};

struct price lista,listb;

int n,sum=0;

void main()

{struct price *creat(void);

struct price *insert(struct price *,struct price *);

void print(struct price *);

struct price * ahead,* bhead,* abh;

printf("input list a:\n");

ahead=creat();

sum=sum+n;

printf("input list b:\n");

bhead=creat();

sum=sum+n;

abh=insert(ahead,bhead);

print(abh);

}

struct price * creat(void)

{struct price * p1,* p2,* head;

n=0;

p1=p2=(struct price *)malloc(len);

printf("input number & price:\n");

printf("if number is 0,stop inputing。

\n");

scanf("%d,%d",&p1->num,&p1->num2);

head=NULL;

while(p1->num!=0)

{n=n+1;

if(n==1)

head=p1;

else

p2->next=p1;

p2=p1;

p1=(struct price *)malloc(len);

scanf("%d,%d",&p1->num,&p1->num2);

}

p2->next=NULL;

return(head);

}

struct price * insert(struct price * ah,struct price *bh)

{struct price *pa1,*pa2,*pb1,*pb2;

pa2=pa1=ah;

pb2=pb1=bh;

do

{while((pb1->num>pa1->num)&&(pa1->next!=NULL))

{pa2=pa1;

pa1=pa1->next;

}

if(pb1->numnum)

{if(ah==pa1)

ah=pb1;

else pa2->next=pb1;

pb1=pb1->next;

pb2->next=pa1;

pa2=pb2;

pb2=pb1;

}

}while((pa1->next!=NULL)||(pa1==NULL&&pb1!=NULL));

if((pb1!=NULL)&&(pb1->num>pa1->num)&&(pa1->next==NULL))

pa1->next=pb1;

return(ah);

}

void print(struct price * head)

{struct price * p;

printf("\nThere are %d records: \n",sum);

p=head;

if(p!=NULL)

do

{printf("%d,%d\n",p->num,p->num2);

p=p->next;

}while(p!=NULL);

}

两个程序差不多 改改东西就成了。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值