《数据结构和算法》之数据结构和算法的介绍

Posted dk1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《数据结构和算法》之数据结构和算法的介绍相关的知识,希望对你有一定的参考价值。

漂流在海上的帆,像极了鲨鱼的鳍

技术图片

 

 

一、数据结构和算法的概述

1、数据(data)结构(structure) 是一门研究 组织数据方式 的学科。

2、程序 = 数据结构 + 算法

3、数据结构 是算法的基础


 

二、看几个实际编程中遇到的问题

 

1、关于单链表数据结构

    public static void main(String[] args) {
        String str = "Java,Java,Java,Hello,World";
        String newStr = str.replaceAll("Java", "c++");
        System.out.println(newStr);
    }


问:试写出用单链表标识的字符串类及字符串节点类的定义,并以此实现它的构造函数、以及计算传长度、串赋值、判断两串相等、求子串、两串连接
  、求子串在串中位置等7个成员函数。

 

 

2、五子棋游戏(二维数组、稀疏数组压缩解压问题)

实现五子棋游戏中 悔棋、存档退出、续上局、判断游戏输赢等操作

技术图片

 

 3、约瑟夫(Josephu)问题(丢手帕问题)

设:编号为1,2,3...n 的n个人未做一圈,约定编号K( 1 <= K <= n)的人 从 1开始报数,数到 m 的那个人出列,它的下一位又从 1 开始报数,数到 m 的那个人又出列,以此类推,直到所有人出列,由此产生一个出队编号的序列。

提示:单向环形链表

技术图片

 

4、修路问题:最小生成树(普利姆算法)

5、最短路径问题:弗洛伊德算法

6、汉诺塔:分治算法

7、八皇后问题:回溯算法

 

 

 

 


 

三、线性结构和非线性结构

 

1、线性结构

   1)线性结构作为最常用的数据结构,其特点是数据 元素之间 存在 一对一的线性关系

  2)线性结构有两种不同的存储结构,即 顺序 存储 和 链式 存储顺序存储的 元素地址是连续的 ,链式存储的元素地址不一定连续,元素节点中存放 数据元素 以及 相邻元素的地址信息 

  3)线性结构常见的有:数组、队列、链表和栈

   

2、非线性结构

  非线性结构包括:二维数组、多维数组、广义表、树结构、图结构

 

以上是关于《数据结构和算法》之数据结构和算法的介绍的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之冒泡选择插入排序(Java)

对称加密算法之DES介绍

数据结构和算法系列之排序算法(JavaScript版)

算法系列之--Javascript和Kotlin的堆排序算法(原)

Java开发 | 数据结构和算法之——递归算法

数据分析应用之-二叉树算法的应用