资源简介
C语言采用邻接表结构实现克鲁斯卡尔算法。
也可以在相应github上下载,https://github.com/Sunnk/Data-Structure,其中Kruskal文件夹中即为克鲁斯卡尔算法,可用vs打开
代码片段和文件信息
#include “binarytree.h“
/** \brief This function visit each node of the binary tree in a preorder traversal
* 1.visit the node; 2.traverse the left subtree; 3.traverse the right subtree
*
* \param root: pointer to the root node of the binary tree
* \param visit_func: pointer to the function to call for each node visited
* \param user_data: user data to pass to the function
* \return none
*
*/
//前序遍历二叉树,遍历过程中,调用访问函数visit_func访问节点内部数据元素。
//参数user_data作为访问函数visit_func的传入参数,可以携带内容,丰富访问操作。若弃用,则传入NULL。
void btree_traverse_preorder(BTNode *root VisitFunc visit_func void *user_data)
{
#ifdef USING_RECURSION
if(root == NULL) return;
if(visit_func){
visit_func(root user_data);
}
btree_traverse_preorder(root->left_child visit_func user_data);
btree_traverse_preorder(root->right_child visit_func user_data);
#else
BTNode *current_node;
Stack *stack;
if(root == NULL) return;
stack = stack_create();
stack_push(stack root);
while(stack_pop(stack (void **)¤t_node) == RET_OK){
if(current_node->right_child){
stack_push(stack current_node->right_child);
}
if(current_node->left_child){
stack_push(stack current_node->left_child);
}
if(visit_func){
visit_func(current_node user_data);
}
}
stack_destroy(stack);
#endif
}
/** \brief This function visit each node of the binary tree in a inorder traversal
* 1.traverse the left subtree; 2.visit the node; 3.traverse the right subtree
*
* \param root: pointer to the root node of the binary tree
* \param visit_func: pointer to the function to call for each node visited
* \param user_data: user data to pass to the function
* \return none
*
*/
//中序遍历二叉树,遍历过程中,调用访问函数visit_func访问节点内部数据元素。
//参数user_data作为访问函数visit_func的传入参数,可以携带内容,丰富访问操作。若弃用,则传入NULL。
void btree_traverse_inorder(BTNode *root VisitFunc visit_func void *user_data)
{
#ifdef USING_RECURSION
if(root == NULL) return;
btree_traverse_inorder(root->left_child visit_func user_data);
if(visit_func){
visit_func(root user_data);
}
btree_traverse_inorder(root->right_child visit_func user_data);
#else
BTNode *current_node;
Stack *stack;
if(root == NULL) return;
stack = stack_create();
current_node = root;
while(current_node != NULL || stack_count_depth(stack) > 0){
if(current_node != NULL){
stack_push(stack current_node);
current_node = current_node->left_child;
}else{
stack_pop(stack (void **)¤t_node);
if(visit_func){
visit_func(current_node user_data);
}
current_node = current_node->right_child;
}
}
stack_destroy(stack);
#endif // USING_RECURSION
}
/** \brief This function visit each node of the binary tree in
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-27 15:05 .vs\
目录 0 2018-12-27 15:05 .vs\Kruskal\
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\
文件 65024 2018-12-10 16:34 .vs\Kruskal\v15\.suo
文件 2043904 2018-12-10 16:34 .vs\Kruskal\v15\Browse.VC.db
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\ipch\
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\ipch\AutoPCH\
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\ipch\AutoPCH\21ef5de3d1fdf1c2\
文件 1966080 2018-12-10 16:32 .vs\Kruskal\v15\ipch\AutoPCH\21ef5de3d1fdf1c2\MAIN.ipch
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\ipch\AutoPCH\6b6f05537c908cbd\
文件 3538944 2018-12-06 15:53 .vs\Kruskal\v15\ipch\AutoPCH\6b6f05537c908cbd\GRAPH.ipch
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\ipch\AutoPCH\6b8d9b537caa892e\
文件 2293760 2018-12-05 10:22 .vs\Kruskal\v15\ipch\AutoPCH\6b8d9b537caa892e\GRAPH.ipch
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\ipch\AutoPCH\9beb1942cf6d9de8\
文件 3604480 2018-12-05 18:01 .vs\Kruskal\v15\ipch\AutoPCH\9beb1942cf6d9de8\BINARYTREE.ipch
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\ipch\AutoPCH\c946e4776ea78650\
文件 3538944 2018-12-05 23:20 .vs\Kruskal\v15\ipch\AutoPCH\c946e4776ea78650\SLIST.ipch
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\ipch\AutoPCH\c966f9fc9907b8f8\
文件 3604480 2018-12-05 23:20 .vs\Kruskal\v15\ipch\AutoPCH\c966f9fc9907b8f8\QUEUE.ipch
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\ipch\AutoPCH\e81562c6613ea037\
文件 3604480 2018-12-05 23:16 .vs\Kruskal\v15\ipch\AutoPCH\e81562c6613ea037\STACK.ipch
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\ipch\AutoPCH\ef333eb252170370\
文件 3604480 2018-12-10 16:32 .vs\Kruskal\v15\ipch\AutoPCH\ef333eb252170370\KRUSKAL.ipch
目录 0 2018-12-27 15:05 .vs\Kruskal\v15\ipch\AutoPCH\ef58a0b25236c633\
文件 4390912 2018-12-05 16:14 .vs\Kruskal\v15\ipch\AutoPCH\ef58a0b25236c633\KRUSKAL.ipch
目录 0 2018-12-27 15:05 .vs\Kruskal\v16\
文件 64000 2018-12-27 13:44 .vs\Kruskal\v16\.suo
目录 0 2018-12-27 15:05 .vs\Kruskal\v16\Preview\
文件 2043904 2018-12-27 13:44 .vs\Kruskal\v16\Preview\Browse.VC.db
目录 0 2018-12-27 15:05 .vs\Kruskal\v16\Preview\ipch\
目录 0 2018-12-27 15:05 .vs\Kruskal\v16\Preview\ipch\AutoPCH\
............此处省略45个文件信息
相关资源
- VS2010 MFC VC++ 学习教程资料 1-55
- C/C++:Windows编程—调用DLL程序的2种方
- C语言教程第五版
- 车辆管理系统课程设计C++)
- OPC客户端应用程序的C++实现
- 遥感图像拉伸代码
- MFC 门卫管理系统
- C++ 包含类两个类互相调用彼此的类成
- 北航2006-2017研究生复试上机源码_vc6
- VC++学生信息管理系统ADO连接数据库
- 平面坐标间转换
- VC++网络嗅探器的设计与实现源代码及
- Effective Modern C++(中文版 + 英文版)
- 高频量化交易系统c++
- Microsoft Visual C++ 2013 Redistributable x86
- 基于51单片机的正弦波发生器.rar
- c++坦克大战
- 图书馆管理系统+文档
- tcp网络编程
- VC6.0助手 VA_X_Setup1823VC6.0助
- 郝斌C语言源代码
- jpg图片、png图片、24位/32位位图转25
- C++调用she格式皮肤(附150个she皮肤)
- c++语言程序设计郑莉.xmind
- gcc-c++-4.8.5-28.el7_5.1.x86_64.rpm
- MFC Mysql数据库访问软件
- MFC工作指示灯
- 车牌识别 openCV mfc BP神经网络
- 王桂林老师 c++基础与提高.pdf
- mcp4531 数字电位器c语言驱动和电路
评论
共有 条评论