Go语言高级 -- 数据结构与算法基本介绍

数据结构(算法)介绍

  1. 数据结构是一门研究算法的学科,自从有了编程语言也就有了数据结构
  2. 要学好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决
  3. 程序 = 数据结构 + 算法

数据结构和算法的关系

  1. 算法是程序的灵魂,为什么有些网站能够在高并发和海量吞吐情况下依然键入磐石,大家可能会说,网站使用了服务器集群技术,
    数据库读写分离和缓存技术(比如redis等),那么如果深入一点,这些优化技术有事怎样被设计出来的呢?
  2. 是什么让不同的人写出的代码从功能上看是一样的,但是从效率上却有天壤之别?比如功能要支持上千万人同时在线,
    并保证数据传输的稳定,在服务器上线前,做内侧.一切OK.可上线后服务器就支撑不住了,公司的CTO对我的代码优化后
    再次上线后,键入怕是,那一刻我认识到程序的灵魂就是算法,如果你不想永远都是代码工人,就仔细研究算法吧

算法的基石-- 数据结构

问题1

func main(){
    var str string = "go hello"
    str = string.Relace(str,"go","背景")
    fmt.Println(str)
}

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

问题二

设1,2,...n的n个人围坐一圈,约定编号为k(1<=k<=n) 的人从1开始报数,报到m的那个人出列,它的下一位又从1开始报数
数到m的那个人又出列,一次类推,直到所有人出列位置,由此产生一个出列编号的序列
提示: 用一个不带头节点起从1开始计数,计到m时,对应节点从链表中删除,然后再从被删除节点的下一个节点又从1
开始计数,知道最后一个节点从连表中删除,算法结束

posted @ 2021-10-15 15:39  河图s  阅读(132)  评论(0)    收藏  举报