链表的处理

在Graph Coloring中,使用双向链表
开始在windows vc平台上调试,正常后, 移植到ubuntu下,用g++编译,发现总是抛段错误,在当前目录下产生core文件(段错误,核心已转储)。若未产生,
ulimit -c unlimit

gdb ./main core
定位到双链表操作
min->prior->next = min->next;
min->next->prior = min->prior;

第二句,假设min指向链表的最后一个结点,那么min->next== NULL,空指针异常,所以要加判断,
if(min->next != NULL) {
   min->next->prior = min->prior;
}




链表操作,几点注意
1. 头结点和尾结点,单独处理,否则出现空指针


初始化一个结点时,将所有指针成员全部初始化为 NULL,避免出错。

你可能感兴趣的:(链表)