zoukankan      html  css  js  c++  java
  • 数据结构——树的简单操作集合

    非常多数据结构的书上解说数据机构时都是採用伪代码实现。事实上感觉蛮不直观的。所以对于全部的数据结构操作我都将其用C实现一遍。


    树是学习二叉树的基础,也是后面理解B树。B+树的等树的基础,以下就给出树的几个简单操作,方便理解。

    数据结构

    //-------数据结构----------------------------------------
    #define m 3  //定义度为3的树
    typedef char datatype;
    typedef struct node
    {
        datatype data;
        struct node* child[m];
    }treenode;
    //------------------------------------------------------

    基本操作

    //--------操作------------------------------------------
    void preorder(treenode* t)
    {
        int i;
        if (t)
        {
            printf("%c",t->data);
            for(i=0;i<m;i++)
            {
                preorder(t->child[i]);
            }
        }
    }
    
    void postorer(treenode* t)
    {
        int i;
        if (t)
        {
            for(i =0;i<m;i++)
            {
                postorer(t->child[i]);
            }
            printf("%c",t->data);
        }
    }
    //必须用指针的指针,假设实參是一个指针,则形參仅仅是一个实參指针的拷贝,所以实參指针的值是不会改变的。
    void createtree(treenode** p) 
    {
        //输入的时候直接输AB###C###D###回车
        int i;char ch;
        scanf("%c",&ch);
        if (ch =='#')
        {
            *p = NULL;
        }
        else
        {
            *p = (treenode*)malloc(sizeof(node));
            (*p)->data = ch;
            for (i =0;i<m;i++)
            {
                createtree(&((*p)->child[i]));
            }
        }
    }
    //------------------------------------------------------
    

    对于树的操作不须要做太多,大多数都是针对二叉树的操作,所以就给出了简单的几个操作,足矣。

  • 相关阅读:
    BeautifulSoup模块
    爬取校花网视频
    爬虫基本原理
    python学习笔记-50 使用SQLAlchemy
    python学习笔记-49 使用MySQL
    PTA天梯 L3-007 天梯地图
    VS2013 创建ASP.NET MVC 4.0 未指定的错误(异常来自HRESULT: 0x80004005(e_fail))
    动态规划--新手
    文件上传绕过
    C# → 数据库
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7063096.html
Copyright © 2011-2022 走看看