内容简介:每个用户都有自己的个人空间,当有其他用户来访问的时候,需要添加访客记录,并且更新为最新的访客,这里设计到一个坑,如果存在这个用户的访问记录需要更新用户的最后访问时间。那这个需求在技术维度来说,有什么特点吗? 先想10秒钟,在接着往下看!!!有什么设计要点呢?缓存的篇章今日暂且不说,说一下以上的第二点,也就引出了今日数据结构主角:链表
每个用户都有自己的个人空间,当有其他用户来访问的时候,需要添加访客记录,并且更新为最新的访客,这里设计到一个坑,如果存在这个用户的访问记录需要更新用户的最后访问时间。那这个需求在技术维度来说,有什么特点吗? 先想10秒钟,在接着往下看!!!
有什么设计要点呢?
- 用户的访客记录一定要缓存,要不然怎么抗住大并发呢?
- 由于最新的访客记录变化非常快,要有一种能快速添加新数据,删除老数据的数据结构。
缓存的篇章今日暂且不说,说一下以上的第二点,也就引出了今日数据结构主角:链表
链表百科:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表属于线性结构。
链表分类
- 单链表:链表中的元素的指向只能指向链表中的下一个元素或者为空,元素之间不能相互指向。也就是一种线性链表。
public class Node<T>
{
//当前节点的数据元素
public T Data { get; set; }
//当前节点的下一个元素
public Node<T> NextNode { get; set; }
}
复制代码
- 双向链表:每个链表元素既有指向下一个元素的指针,又有指向前一个元素的指针,其中每个结点都有两种指针。
public class Node<T>
{
//当前节点的前一个节点
public Node<T> PreNode { get; set; }
//当前节点的数据元素
public T Data { get; set; }
//当前节点的下一个元素
public Node<T> NextNode { get; set; }
}
复制代码
- 循环链表:指的是在单向链表和双向链表的基础上,将两种链表的最后一个结点指向第一个结点从而实现循环。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Python高性能的数据结构和数据分析工具—pandas
- NutsDB, 高性能内嵌型KV数据库支持事务和多种数据结构
- 数据结构 – 用于构建文件系统的数据结构?
- 荐 用Python解决数据结构与算法问题(三):线性数据结构之栈
- 数据库索引背后的数据结构
- 基础数据结构及js数据存储
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
游戏编程权威指南
Mike McShaffry 麦克沙福瑞、David “Rez” Graham 格雷海姆 / 师蓉、李静、李青翠 / 人民邮电 / 2016-3 / 99.00元
全书分为4个部分共24章。首部分是游戏编程基础,主要介绍了游戏编程的定义、游戏架构等基础知识。 第二部分是让游戏跑起来,主要介绍了初始化和关闭代码、主循环、游戏主题和用户界面等。 第三部分是核心游戏技术,主要介绍了一些*为复杂的代码 示例,如3D编程、游戏音频、物理和AI编程等。 第四部分是综合应用,主要介绍了网络编程、多道程序设计和用C#创建工具等,并利用前面所讲的 知识开发出......一起来看看 《游戏编程权威指南》 这本书的介绍吧!