Go语言高级 -- 数据结构与算法基本介绍
数据结构(算法)介绍
- 数据结构是一门研究算法的学科,自从有了编程语言也就有了数据结构
- 要学好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决
- 程序 = 数据结构 + 算法
数据结构和算法的关系
- 算法是程序的灵魂,为什么有些网站能够在高并发和海量吞吐情况下依然键入磐石,大家可能会说,网站使用了服务器集群技术,
数据库读写分离和缓存技术(比如redis等),那么如果深入一点,这些优化技术有事怎样被设计出来的呢? - 是什么让不同的人写出的代码从功能上看是一样的,但是从效率上却有天壤之别?比如功能要支持上千万人同时在线,
并保证数据传输的稳定,在服务器上线前,做内侧.一切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
开始计数,知道最后一个节点从连表中删除,算法结束
python防脱发技巧

浙公网安备 33010602011771号