zoukankan      html  css  js  c++  java
  • 数据结构概述

    什么是数据结构:

      数据结构研究的是数据的存储和数据的操作在的一门科学,

      数据的存储分为两部分:

        1、个体的存储  2、个体关系的存储

      从某个角度而言,数据的存储最核心的就是个体关系的存储,个体的存储可以忽略不计;

     递归:

      汉诺塔问题:如果将n个盘子(由小到大)从a通过b,搬到c,搬运过程中不能出现小盘子在大盘子下面的情况。

      思路分析:假设前要移动第100个盘子,分两步走,移动第99个;再移动第100个;而要移动第99个,同样分两部,移动第98个,再移动第99个,以此类推;

      if(n>1)

      {

        1、先将A柱上的前n-1个盘子从A借助C移动到B;

        2、把A柱子上的第n个盘子直接移动到C;

        3、再将B柱子上的n-1个盘子借助A移动到C;

      }

     1 #include <iostream>
     2 static int s_data = 0;
     3 
     4 void move(const int i, const char a, const char b)
     5 {
     6     s_data++;
     7     std::cout<< "" <<i<<"号盘子从"<<a<<"移到"<<b<<std::endl;
     8 }
     9 
    10 void hannoi(const int n, char a, char b, char c)  //参数说明:a是源柱,b是借助的柱子,c是目标柱子
    11 {
    12     int tmp = n;
    13     if(tmp == 1){
    14         move(1, a, c);
    15     }else{
    16         hannoi(tmp-1, a, c, b);
    17         move(tmp, a, c);
    18         hannoi(tmp-1, b, a, c);
    19     }
    20 }
    21 
    22 int main()
    23 {
    24     std::cout<<"以下是7层汉诺塔的解法:"<<std::endl;  
    25     hannoi(4,'A','B','C');  
    26     std::cout<<"输出完毕!总次数为"<< s_data <<std::endl; 
    27     while(1);
    28 }

     

  • 相关阅读:
    elasticsearch head插件安装
    ELK部署配置使用记录
    windows 安装mysql
    vs2017创建dotnetcore web项目,并部署到centos7上
    CentOS 7 安装jdk
    CentOS 7 配置网络
    Surging 记录
    记录一下地址
    net core 依懒注入 中间件
    Elasticsearch 配置文件
  • 原文地址:https://www.cnblogs.com/chris-cp/p/4102470.html
Copyright © 2011-2022 走看看