gpt4 book ai didi

c - 在c中合并两个单链接列表

转载 作者:行者123 更新时间:2023-11-30 15:26:43 24 4
gpt4 key购买 nike

我正在编写一个函数,它采用两个列表结构,每个列表结构包含两个指针,一个指向列表中的第一个节点,另一个指向列表中的最后一个节点。我在 if 行的 if 行处遇到段错误。这是我的功能:

extern void lst_merge_sorted(LIST *a, LIST *b);
void lst_merge_sorted(LIST *a, LIST *b){
NODE *aCurr,*bCurr,*aTemp,*bTemp;
aCurr = a->front;
bCurr = b->front;
aTemp = a->front;
bTemp = b->front;
int aLength = 2, bLength = 2;
while(aCurr->next != NULL){
aLength++;
aCurr = aCurr->next;
}
while(bCurr->next != NULL){
bLength++;
bCurr = bCurr->next;
}
int i,j;
for (i = 0; i < aLength; i++){
for(j = 0; j < bLength; j++){
if (bTemp->val < aTemp->val){
bTemp->next = aTemp->next;
aTemp->next = bTemp;
}
bTemp = bTemp->next;
}
aTemp = aTemp->next;
}
}

和我的列表结构/节点结构:

typedef struct node {
ElemType val;
struct node *next;
} NODE;


struct list_struct {
NODE *front;
NODE *back;
};

有人知道为什么我会出现段错误吗?编辑ElemType 声明为

Typedef int ElemType

最佳答案

看看那个嵌套循环。您可能真的不想遍历列表 b aLength * bLength 次。

关于c - 在c中合并两个单链接列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27307021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com