亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請看題目,利用malloc()函數如何實現將輸入的任意個數字連成一個鏈表?

請看題目,利用malloc()函數如何實現將輸入的任意個數字連成一個鏈表?

慕的地8271018 2021-08-19 18:15:00
想要利用malloc()函數實現將輸入的任意個數字連成一個鏈表,并輸出鏈表中的數字,最后撤銷鏈表
查看完整描述

1 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

#include <stdio.h>
#include <malloc.h>
struct intnode
{
int num;
intnode *next;
};
intnode *createlist(int n)
{
intnode *p,*head=NULL;
int i;
p=(intnode *)malloc(sizeof(intnode));
scanf("%d",&p->num);
p->next=NULL;
head=p;
for (i=1;i<n;i++)
{
p->next=(intnode *)malloc(sizeof(intnode));
p=p->next;
scanf("%d",&p->num);
}
p->next=NULL;
return head;
}
intnode *sumlist(intnode *a,intnode *b)
{
intnode *pa=a,*pb=b,*p,*head;
p=(intnode *)malloc(sizeof(intnode));
if (a->num<b->num)
{p=a;pa=a->next;}
else
{p=b;pb=b->next;}
p->next=NULL;
head=p;
while(pa!=NULL&&pb!=NULL)
{

if (pa->num<pb->num)
{
p->next=pa;
p=pa;
pa=pa->next;
}
else
{
p->next=pb;
p=pb;
pb=pb->next;
}
}
if(pb==NULL)
while (pa!=NULL)
{p->next=pa;pa=pa->next;}
else
while (pb!=NULL)
{p->next=pb;pb=pb->next;}
return head;
}
void main()
{
int N1,N2;
intnode *p1,*p2,*p;
scanf("%d%d",&N1,&N2);
p1=createlist(N1);
p2=createlist(N2);
p=sumlist(p1,p2);
while (p!=NULL)
{
printf("%d ",p->num);
p=p->next;
}
printf("\n");
}

 


查看完整回答
反對 回復 2021-08-23
  • 1 回答
  • 0 關注
  • 668 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號