联系代码如下,尝试过直接第一个链表的尾指针直接指向第二个链表的首地址,发现程序出现错误
#include<stdio.h>
#include<malloc.h>
typedef struct number
{
int date;
struct number* next;
}element1;
#define len sizeof(element1)
#define creat_ele1 (element1 )malloc(len)
void connet(element1 p1, element1* p2);
int main()
{
element1* head, * tail, * p;
element1* head1 ,* tail1, * p1;
element1* printf_;//用来输出链表数据
int i, j, k;
printf("输入两个单链表大小");
scanf_s("%d %d", &j, &k);
head = (element1*)malloc(len);
p = head;
while (j)
{
scanf_s("%d", &p->date);
tail = creat_ele1;
p->next = tail;
p = tail;
j--;
}
p = p->next = NULL;
head1 = creat_ele1;
p1 = head1;
while (k)
{
scanf_s("%d", &p1->date);
tail1 = creat_ele1;
p1->next = tail1;
p1 = tail1;
k--;
}
printf_ = head;
p1 = p1->next = NULL;
while (printf_->next!= NULL)
{
printf("%d", printf_->date);
printf_ = printf_->next;
}
printf("\n");
printf_ = head1;
while (printf_->next != NULL)
{
printf("%d", printf_->date);
printf_ = printf_->next;
}
printf("链接后的数据");
connet(head, head1);
printf_ = head;
while(printf_->next)
{
printf("%d", printf_->date);
printf_ = printf_->next;
}
return 0;
}
void connet(element1 * p1,element1 *p2)//链接两个链表
{
while (p1->next)
p1 = p1->next;
p1->next = p2;
}
输入2 2
1 2
1 2
得到结果12 842150451 12
练习C语言100道单链表的连接时出现842150451
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- orange4reg 2022-03-04 23:40关注
#include<stdio.h> #include<malloc.h> typedef struct number { int date; struct number* next; }element1; #define len sizeof(element1) #define creat_ele1 (element1 *)malloc(len) void connet(element1 *p1, element1* p2); int main() { element1* head, * tail, * p; element1* head1, * tail1, * p1; element1* printf_;//用来输出链表数据 int i, j, k; printf("输入两个单链表大小"); scanf_s("%d %d", &j, &k); head = (element1*)malloc(len); p = head; while (true) { scanf_s("%d", &p->date); if (j <= 1) break; tail = creat_ele1; p->next = tail; p = tail; j--; } p = p->next = NULL; head1 = creat_ele1; p1 = head1; while (true) { scanf_s("%d", &p1->date); if (k <= 1) break; tail1 = creat_ele1; p1->next = tail1; p1 = tail1; k--; } printf_ = head; p1 = p1->next = NULL; while (printf_ != NULL) { printf("%d", printf_->date); printf_ = printf_->next; } printf("\n"); printf_ = head1; while (printf_ != NULL) { printf("%d", printf_->date); printf_ = printf_->next; } printf("\n"); printf("链接后的数据"); connet(head, head1); printf_ = head; while (printf_ != NULL) { printf("%d", printf_->date); printf_ = printf_->next; } return 0; } void connet(element1* p1, element1* p2)//链接两个链表 { while (p1->next) p1 = p1->next; p1->next = p2; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 ansys fluent计算闪退
- ¥15 有关wireshark抓包的问题
- ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
- ¥15 向数据表用newid方式插入GUID问题
- ¥15 multisim电路设计
- ¥20 用keil,写代码解决两个问题,用库函数
- ¥50 ID中开关量采样信号通道、以及程序流程的设计
- ¥15 U-Mamba/nnunetv2固定随机数种子
- ¥15 vba使用jmail发送邮件正文里面怎么加图片
- ¥15 vb6.0如何向数据库中添加自动生成的字段数据。