前言 為什麼要學習數據結構與演算法,如果你學會了做安卓,javaweb,前端等,都是你的武功秘籍,但是如果你的內功不夠好,再厲害的功夫也是白費。 數據結構和演算法:什麼是數據結構,什麼是數據,在電腦內部數據為01010101。。。,數據是我們生活中一切的事務都可以表示為數據,如你和你朋友聊天的話都是數 ...
前言
為什麼要學習數據結構與演算法,如果你學會了做安卓,javaweb,前端等,都是你的武功秘籍,但是如果你的內功不夠好,再厲害的功夫也是白費。
數據結構和演算法:什麼是數據結構,什麼是數據,在電腦內部數據為01010101。。。,數據是我們生活中一切的事務都可以表示為數據,如你和你朋友聊天的話都是數據,朋友圈的發表內容也是內容。
數據結構是數據之間相互存在的一種或多種特定的關係,數據之間的關係。數據結構的關係,要麼一對一,或者一對多。
er圖,實體關聯圖。數據與數據之間的關係,分:
- 圖形結構
- 樹形結構
- 線性結構
- 集合結構
以上圖形的圓不代表相同的元素,都是不同的小圈圈哦~
還有兩個存儲結構:
順序存儲結構和鏈式存儲結構
抽象數據類型
那麼什麼是抽象數據類型,是一個數字模型以及定義在該模型上的一組操作,數據類型是將相同的一組性質的集合,和定義在此集合上的操作。
線性表
線性表,線性結構,表結構。
線性表有兩種不同的存儲方式
順序存儲方式線性表存儲位置連續,方便查詢各個元素。優點在查找的時候效率比較高的,但在插入和刪除的時候效率比較低。
鏈式存儲方式線性表,對於鏈表存儲的單元是可以連續的,也可以不連續,在鏈式中存儲包含data
和next->data
。
P p1=new P();
p1.data = "data";
P p2=new P();
p1.data = p2;
對於鏈式存儲結構,優點是插入和刪除效率高,而查詢效率低。
鏈式和順序存儲優缺點
順序存儲方式線性表優點在查找的時候效率比較高的,但在插入和刪除的時候效率比較低。
對於鏈式存儲結構,優點是插入和刪除效率高,而查詢效率低。
迴圈鏈表
迴圈鏈表為一種鏈式存儲結構,它的最後一個結點指向頭結點,形成一個環,這種頭尾相連的單鏈表稱為單迴圈鏈表,簡稱迴圈鏈表。
從迴圈鏈表中的任何一個結點出發,它都能夠找到其他結點,迴圈鏈表的操作和單鏈表的操作是一樣的,差別就在於演算法中的迴圈條件不同而已。
雙向迴圈鏈表也叫雙鏈表,是單向迴圈鏈表的每個結點中,再設置一個指向其前驅結點的指針域,雙向鏈表是鏈表的一種。
結語
- 本文主要講解 Java內功秘籍-線性表
- 下麵我將繼續對Java、 Android中的其他知識 深入講解 ,有興趣可以繼續關註