Hakutaku
2018-10-11 17:43
采纳率: 83.3%
浏览 691
已采纳

C语言写一个函数将两个 linked list 加到一起。

先是typedef

typedef struct {
char start;
char end;
int value;
int passed;
} info_t;

typedef info_t* data_t;

typedef struct node node_t;
struct node {
data_t data;
node_t *next;
}

typedef struct {
node_t *head;
node_t *foot;
} list_t;

list_t
make_empty_list(void) {
list_t *list;
list = (list_t
)malloc(sizeof(*list));
assert(list!=NULL);
list->head = list->foot = NULL;
return list;
}

然后要写的function是把one_list 加到 all_list 之前,要分两种情况考虑到all_list是不是空
add_list(list_t *all_list, list_t*one_list) {

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • cold_windx 2018-10-12 00:55
    已采纳

    void add_list(list_t *all_list, list_t *one_list)
    {
    if (one_list->head == NULL)
    return;
    if (all_list->head == NULL)
    {
    all_list->head = one_list->head;
    all_list->foot = one_list->foot;
    return;
    }
    one_list->foot->next = all_list->head;
    all_list->head = one_list->head;
    }

    
    
    打赏 评论

相关推荐 更多相似问题