準(zhǔn)備加班中ing..... 需求要點(diǎn) 每個(gè)用戶都有自己的個(gè)人空間,當(dāng)有其他用戶來(lái)訪問(wèn)的時(shí)候..."/>
您好,登錄后才能下訂單哦!
cdn.xitu.io/2019/3/3/16941a949afab1ea?w=710&h=772&f=png&s=121666">
準(zhǔn)備加班中ing.....
每個(gè)用戶都有自己的個(gè)人空間,當(dāng)有其他用戶來(lái)訪問(wèn)的時(shí)候,需要添加訪客記錄,并且更新為最新的訪客,這里設(shè)計(jì)到一個(gè)坑,如果存在這個(gè)用戶的訪問(wèn)記錄需要更新用戶的最后訪問(wèn)時(shí)間。那這個(gè)需求在技術(shù)維度來(lái)說(shuō),有什么特點(diǎn)嗎?
先想10秒鐘,在接著往下看?。?!
有什么設(shè)計(jì)要點(diǎn)呢?
緩存的篇章今日暫且不說(shuō),說(shuō)一下以上的第二點(diǎn),也就引出了今日數(shù)據(jù)結(jié)構(gòu)主角:鏈表
鏈表百科:鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過(guò)鏈表中的指針鏈接次序?qū)崿F(xiàn)的。鏈表屬于線性結(jié)構(gòu)。
public class Node<T>
{
//當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)元素
public T Data { get; set; }
//當(dāng)前節(jié)點(diǎn)的下一個(gè)元素
public Node<T> NextNode { get; set; }
}
public class Node<T>
{
//當(dāng)前節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)
public Node<T> PreNode { get; set; }
//當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)元素
public T Data { get; set; }
//當(dāng)前節(jié)點(diǎn)的下一個(gè)元素
public Node<T> NextNode { get; set; }
}
給你10秒回到X總的需求中來(lái)。通過(guò)對(duì)鏈表的介紹,我們?cè)撨x擇哪種鏈表呢?這里我先說(shuō)一下我的思路,如有錯(cuò)誤請(qǐng)指正:
X總的個(gè)人空間需求并沒(méi)有結(jié)束,菜菜仍然在持續(xù)優(yōu)化中,歡迎大佬指正!
添加關(guān)注,查看更精美版本,收獲更多精彩
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。