• c++ 有序二叉树的应用


    实作:以有序二叉树记录学生签到时间及名字,然后以名字升序输出学生签到信息

      stricmp,strcmpi 

      原型:extern int stricmp(char *s1,char * s2);        

      用法:#include <string.h>  

      功能:比较字符串s1s2,但不区分字母的大小写。  

      说明:strcmpi是到stricmp的宏定义,实际未提供此函数。

            当s1<s2时,返回值<0

            当s1=s2时,返回值=0

            当s1>s2时,返回值>0

    一、修改 CreateNode
    struct node * CreateNode(char *name)
    {
        time_t t;
        tm *timfo;
        struct node *p=malloc(sizeof(struct node));
        p->pLeft=p->pRight=NULL;
        //复制name
        strcpy(p->name,name); //获取名字
        
        time(&t);
        timfo= localtime(&t); //取当前系统时间
        node->stuTime.hour=timfo->tm_hour;//
        node->stuTime.min=timfo->tm_min;//
        node->stuTi
    二、修改 AddNode
      struct node * AddNode(struct node * pNode,char *v)
    {
        //情况一pNode==NULL
        if (pNode==NULL)
        {
            return CreateNode(v);
        }
        // pNode->data=v
        if (stricmp(pNode->name,v)==0)
        {
            
            return pNode;
        }
        //v大于结点数据
        if (stricmp(v,pNode->name)>0)
        {
            if (pNode->pRight==NULL)
            {
                pNode->pRight=CreateNode(v);
                return pNode->pRight;
            }else return AddNode(pNode->pRight,v); //递归调用
        }
        //v小于结点数据
        if (stricmp(v,pNode->name)<0)
        {
            if (pNode->pLeft==NULL)
            {
                pNode->pLeft=CreateNode(v);
                return pNode->pLeft;
            }else return AddNode(pNode->pLeft,v); //递归调用
        }
    
        return NULL;
    }
    三、修改 Traversal
      void traversal(struct node* pNode)
    { int i;
        if (pNode->pLeft!=NULL)
        {
            traversal(pNode->pLeft);
        }
         
            printf("%s,",pNode->name);
         
        if (pNode->pRight!=NULL)
        {
                traversal(pNode->pRight);
        }
    
        
    
    }
  • 相关阅读:
    C++:new&delete
    C++:模板——函数模板1
    C/C++:static用法总结
    C++:内存分区
    C++:友元
    C++:构造函数3——浅拷贝和深拷贝
    C++:类中两个易被忽略的默认函数
    C++:析构函数
    C++:类中的赋值函数
    SHELL基础知识
  • 原文地址:https://www.cnblogs.com/whzym111/p/6145714.html
Copyright © 2020-2023  润新知