zoukankan      html  css  js  c++  java
  • 笔试算法

    最近找工作,参加过一些公司的笔试,面试。下面把笔试过的一些算法题用代码写出来,和大家分享讨论下。

    一 .实现字符串的拷贝功能。char* strcpy(char* dst, char* src)//把src内存位置的字符串拷贝到dst内存位置

    char* strcpy(char *dst, char *src)
    {
    char *tempDst = dst;
    //测试字符串的长度,如果目标字符串长度大于源字符串,返回目标指针dst,否则,返回NULL
    if(strlen(dst) > strlen(src))
    {
    while(*src != '\0')
    {
    *tempDst++ = *src++;
    }
    *tempDst = '\0';
    return dst;
    }
    else
    {
    return NULL;
    }
    }

    二. 实现链表的插入功能。(在pHead头节点后面,第i个位置插入一个新节点pNode)

    struct CNode {CNode *pNext; CNode *pPrev};


    BOOL Inerset(CNode *pHead, int i, CNode *pNode)//插入成功返回true,否则false

    //在第i个位置插入节点,如果i大于0小于等于链表长度,插入节点成功,返回true,否则返回false
    bool Inerset(CNode *pHead, int i,CNode *pNode)
    {
    int index = 1; //记录当前节点的位置
    CNode *currentNode = pHead; //记录当前节点
    //判断当前节点的位置
    while(currentNode->pNext != NULL && index != i)
    {
    currentNode = currentNode->pNext;
    index++;
    }

    if(index == i && currentNode->pNext != NULL)
    {
    pNode->pNext = currentNode->pNext;
    currentNode->pNext->pPrev = pNode;
    pNode->pPrev = currentNode;
    currentNode->pNext = pNode;
    return true;
    }
    else
    {
    return false;
    }
    }

    三. 用递归实现查找叶子的颜色 struct CLeaf

    {
      int Color;    //叶子颜色
      CLeaf* SubLeafs[];//子叶子的个数(同字符串,NULL为结束)
    };

    //FindColor
    //返回相同颜色的叶子地址,如无返回NULL.
    //Deap:相同颜色叶子的层数
    CLeaf* FindColor(CLeaf* Tree, int Color, int& Deap)

    //此函数的算法采用的是深度遍历,如果找到,就返回目标节点,如果为找到,就返回NULL
    CLeaf* FindColor(CLeaf *Tree, int Color, int& Deap)
    {
    //返回目标节点
    if(Tree->Color == Color)
    {
    return Tree;
    }
    else
    {
    CLeaf **Sub = Tree->SubLeafs;
    Deap++;
    //深度遍历
    while(*Sub != NULL)
    {
    CLeaf* dstNode = FindColor(*Sub,Color,Deap);

    if(dstNode != NULL && dstNode->Color == Color)
    {
    return dstNode;
    }
    else
    {
    Sub++;
    }
    }
    }
    Deap--;
    return NULL;
    }



     

     

  • 相关阅读:
    django 大体流程
    JavaScript概述
    前端css
    前端基础,加标签
    hashlib模块
    MySQL 了解知识点
    MySQL Navicat 使用
    mysql的基本查询语法及方法 多表查询
    MySQL 外键 一对一 一对多 多对多 复制
    It's likely that neither a Result Type nor a Result Map was specified
  • 原文地址:https://www.cnblogs.com/PerfectSoft/p/2316349.html
Copyright © 2011-2022 走看看