美文网首页
数据结构-树

数据结构-树

作者: 剧情简介第一天 | 来源:发表于2016-10-30 16:06 被阅读0次

    树的存储

    1.双亲表示法:

    以一组连续空间存储树的结点,同时在每个结点中,附设一个指示器指向其双亲结点到链表中的位置

    #define MAX_TREE_SIZE 100
    typedef int ELemType
    typedef struct PTNode //结点结构
    {
    ElemType data; //结点数据 
    int partent;  //双亲位置
    }PTNode;
    typedef struct
    {
    PTNode nodes[MAX_TREE_SIZE]; //结点数组
    int r; //根
    int n;//结点
    }PTree
    

    2.孩子双亲表示法:

    把每个结点的孩子排列起来,以单链表做存储结构,则n个结点有n个孩子链表,如果是叶子结点则此单链表为空。然后n个头指针有组成一个线性表,采用顺序存储结构,存放进入一个一维数组中.

    #define MAX_TREE_SIZE 100
    typedef char ElemType 
    typedef struct CNode //孩子结构
    {
    int data; 孩子所在数组的下标
    struct CNode *next;//指向下一个孩子结点的指针
    }*ChildPtr;
    typedef struct //表头结构
    {
    ElemType data;//结点数据
    ChildPtr firstchild;//指向第一个孩子的指针
    }CTbox;
    typedef struct //将两个结构联合起来
    {
    CTbox nodes[MAX_TREE_SIZE];
    int r,n;//树的根,结点
    }
    

    3.孩子兄弟表示法:

    我们发现,任意一颗树,它的结点的第一个孩子如果存在就是的,它的右兄弟如果存在也是唯一的。因此,我们设置两个指针,分别指向该结点的第一个孩子和此结点的右兄弟。

    typedef int ElemType
    typedef struct CSNode
    {
    ElemType data;
    struct CSNode *firstchild *rightsib;
    }CSNode,*CSTree;
    

    二叉树

    相关文章

      网友评论

          本文标题:数据结构-树

          本文链接:https://www.haomeiwen.com/subject/ezquuttx.html