tree.h

来自「多任务下的数据结构与算法的源码」· C头文件 代码 · 共 69 行

H
69
字号
/*
 * Copyright (c) 2000-2008
 * Author: Weiming Zhou
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  
 */

#ifndef __TREE_H__
#define __TREE_H__


typedef struct TREE_st {
    DOUBLELIST    * pLeafList;
    DOUBLELIST    * pSubTreeList;
    void          *pProperties;
} TREE, *LPTREE;


typedef int    (*COMPAREFUNC)( void *prop1, void *prop2 );


// Initialize and destroy functions
TREE *  Tree_Create();

void    Tree_Destroy( 
             TREE * pTree, 
             DESTROYFUNC LeafDestroyFunc, 
             DESTROYFUNC PropDestroyFunc );

// Leaf functions
int     Tree_AddLeaf(TREE * pTree, void *pLeafData);
int     Tree_RemoveLeaf(TREE * pTree, 
                        void *pLeafData, 
                        DESTROYFUNC LeafDestroyFunc);

// Properties functions
int     Tree_SetProperties(TREE * pTree, 
                           void * pProperties, 
                           DESTROYFUNC PropDestroyFunc);

void *  Tree_GetProperties(TREE * pTree);

// Sub pTree functions
int     Tree_AddSubTree(TREE * pTree, TREE * sub);

int     Tree_RemoveSubTree(
               TREE * pTree, 
               TREE * sub, 
               DESTROYFUNC leaffunc,
               DESTROYFUNC propfunc );

// Copy function
TREE *    Tree_Copy(
              TREE * pTree,
              COPYFUNC LeafCopyFunc, 
              COPYFUNC PropCopyFunc );

// Search functions
TREE *    Tree_FindSubTreeByProp(
              TREE  * pTree,
              void  * pProperties,
              COMPAREFUNC   CompareFunc
              );

#endif  //__TREE_H__

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?