设为首页 加入收藏

TOP

一步一步写算法(之prim算法 下) (二)
2014-11-23 23:55:15 来源: 作者: 【 】 浏览:31
Tags:步一步 算法 prim
cur;

cur = cur->next;

}

pNode->next = prev->next;

prev->next = pNode;

return;

}

void sort_for_line_list(DIR_LINE** ppNode)

{

DIR_LINE* prev;

DIR_LINE* curr;

if(NULL == ppNode || NULL == *ppNode)

return;

curr = (*ppNode) ->next;

(*ppNode) ->next = NULL;

while(curr){

prev = curr;

curr = curr->next;

insert_for_sort_operation(ppNode, prev);

}

}

void insert_for_sort_operation(DIR_LINE** ppNode, DIR_LINE* pNode)

{

DIR_LINE* prev;

DIR_LINE* cur;

/* 在第一个数据之前插入pNode */

if(pNode->weight < (*ppNode)->weight){

pNode->next = *ppNode;

*ppNode = pNode;

return;

}

cur = *ppNode;

while(cur){

if(pNode->weight < cur->weight)

break;

prev = cur;

cur = cur->next;

}

pNode->next = prev->next;

prev->next = pNode;

return;

}

void sort_for_line_list(DIR_LINE** ppNode)

{

DIR_LINE* prev;

DIR_LINE* curr;

if(NULL == ppNode || NULL == *ppNode)

return;

curr = (*ppNode) ->next;

(*ppNode) ->next = NULL;

while(curr){

prev = curr;

curr = curr->next;

insert_for_sort_operation(ppNode, prev);

}

}

算法总结:

1)算法本身还有改进的空间,比如是不是内存分配上每一次都要重建DIR_LINE队列有待商榷

2)算法编写不是一部就位的,中间有反复更有删改,写四五次是很正常的事情

3)编写代码的时候最好做到边修改、边测试,这样可以一方面增加代码的健壮度,一方面还能提高自己的信心

4)如果存在可能,可以复用以前写过的、稳定的算法代码,比如说排序、查找、堆栈、二叉树之类的代码

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇简单小游戏 下一篇一步一步写算法(之克鲁斯卡尔算..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: