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 }

     

  • 相关阅读:
    Java 基础
    Java 数据类型
    Spring 拦截器实现事物
    SSH 配置日记
    Hibernate 知识提高
    Jsp、Servlet
    leetcode 97. Interleaving String
    leetcode 750. Number Of Corner Rectangles
    leetcode 748. Shortest Completing Word
    leetcode 746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/chris-cp/p/4102470.html
Copyright © 2011-2022 走看看