学习日记[11]

更新於 發佈於 閱讀時間約 5 分鐘

1.数据结构:单向循环链式表。我比较愚笨,反应慢同时悟性也差,一上午就搞了一个创建单行循环链式表。不说这个了,还是先来谈谈这个循环链式表吧。相较于之前的非循环单向链式表,区别在于最后一个末尾节点总是指向开头的节点,构成循环结构。所以每次链接都需要在非循环的基础上,将尾部最后一个指针连接到头指针上面。具体代码实现如下

class Node {
int data;
Node next;

public Node(int data) {
this.data = data;
this.next = null;
}
}

class CircularLinkedList {
Node head;
Node tail;

public CircularLinkedList() {
this.head = null;
this.tail = null;
}

public void append(int data) {
Node newNode = new Node(data);
if (head == null) {
head = newNode;
tail = newNode;
tail.next = head; // 将尾节点的下一个节点指向头节点,形成循环
} else {
tail.next = newNode;
tail = newNode;
tail.next = head; // 更新尾节点的下一个节点指向头节点,保持循环
}
}

public void printList() {
if (head == null) {
System.out.println("链表为空");
return;
}

Node current = head;
do {
System.out.print(current.data + " ");
current = current.next;
} while (current != head); // 当遍历到头节点时停止
System.out.println();
}
}
}

其实还有一个插入方法比较简单,向前插入方法用作循环的时候,我们只需要将tail链接上就可以了,比起向后插入方法简单一点。向前插入方法和向后插入方法其实没有太大的区别,主要就是两行代码还是三行代码的问题。向前插入是将新节点和头节点连接上,然后将新节点变成链式表的头节点。

具体实现如下:

newNode.next = head;
head = newNode;
//向前插入具体实现
Node temp = head;
while(temp.next == null)
{
temp = temp.next;
}
temp.next = newNode;
//向后插入的具体实现​

向前插入只需要考虑新节点和头节点,向后插入则需要找到相应插入位置,这可能会麻烦一点。双向链表等明天再说吧,如果明天课程内容轻松的话。

2.《纳粹德国》:今天看了七页。这七页是承接上文三大主义——民族主义、帝国主义、种族主义,对19世纪重大事件的影响来讲的。作者是按照时间顺序来梳理的,从产生的先后、原因和彼此之间的影响这些方面展开叙述。老师说,收获还是有的,比如任意两个学科之间都有交叉。达尔文的进化论为殖民扩张时期的欧洲白种人提供了优越性的基础,还刺激了民族主义的发展。这个投向生物学的重磅炸弹竟然为种族主义和民族主义的发展提供了一部分的理论基础,后来又有一个社会达尔文主义。学科之间没有绝对的断层,反而还有着千丝万缕的联系。然后我就想到了我现如今接受的教育——都是文科没前途纯码字,理科就是技术高端人才,是多么的愚蠢。这些刻板印象竟然还可以存活在老师口中,确实有些可悲。

3.英语:字典并不是一切,他的解释都是根据语境来的,我们只需要了解它的基础含义,然后多读文章,自然就了解这些含义而不是死记硬背。而且字典是语言研究,他是必须严谨的。我并不是要当一个语言专家,只要会说,会写,会用就可以,所以字典中的含义对我来说也是必须也要精简的,要用我自己可以理解的简单的方式进行重述,抄写的本子上,而不是我之前那样不过脑子直接背注释。

4.个人感悟:果然我不适合跟随现代潮流,听到抖音或者其他短视频就烦,他们里面的音乐也是一样。但我尊重那些喜欢短视频的人,这毕竟是喜好问题,没必要把所有厌恶的人当作异教徒来处置。所以我还是逃离这里吧,大学积分谁爱要谁要,潮流谁爱跟谁跟,我只需要做好自己,提升能力,早日摆脱牢笼就好。




留言
avatar-img
留言分享你的想法!
avatar-img
YLAMBDA的沙龍
0會員
20內容數
这个专题是我个人的学习日记,每日会更新,内容很乱,请多见谅。
YLAMBDA的沙龍的其他內容
2023/11/10
2023/11/10
2023/11/04
2023/11/04
2023/11/01
2023/11/01
看更多
你可能也想看
Thumbnail
在資料結構與演算法裡, 最簡單的線性資料結構除了list之外就是linked list鏈結串列了。 Linked list又有分為單向Singly linked list 和雙向Doubly linked list 在這篇文章,會從最基礎的Singly linked list開始講起。 定義
Thumbnail
在資料結構與演算法裡, 最簡單的線性資料結構除了list之外就是linked list鏈結串列了。 Linked list又有分為單向Singly linked list 和雙向Doubly linked list 在這篇文章,會從最基礎的Singly linked list開始講起。 定義
Thumbnail
給定一個Linked list鏈結串列的Head node, 請判斷這條Linked list是否存在環路(Cycle)? 如果有環路,回傳True。 如果沒有,回傳False。
Thumbnail
給定一個Linked list鏈結串列的Head node, 請判斷這條Linked list是否存在環路(Cycle)? 如果有環路,回傳True。 如果沒有,回傳False。
Thumbnail
題目敘述 題目會給我們一個鏈結串列的起點head,要求我們找出這個串列的中點。 註: 如果串列長度是偶數,就回傳中間偏右的那個節點。 例如: 1 -> 2 -> 3 回傳中點為2 1 -> 2 -> 3 -> 4 ->5 -> 6 回傳中點為4 詳細的題目可在這裡看到 測試範例
Thumbnail
題目敘述 題目會給我們一個鏈結串列的起點head,要求我們找出這個串列的中點。 註: 如果串列長度是偶數,就回傳中間偏右的那個節點。 例如: 1 -> 2 -> 3 回傳中點為2 1 -> 2 -> 3 -> 4 ->5 -> 6 回傳中點為4 詳細的題目可在這裡看到 測試範例
Thumbnail
題目會給定我們一個串列,和一個n值,要求我們刪除尾巴數來的第n個節點。 例如 1->2->3->4->5 和 給定n值=2,要求我們刪除尾巴數來的第2個節點。 尾巴數來的第2個節點是4,刪除之後,更新連結,輸出答案如下 1->2->3->5
Thumbnail
題目會給定我們一個串列,和一個n值,要求我們刪除尾巴數來的第n個節點。 例如 1->2->3->4->5 和 給定n值=2,要求我們刪除尾巴數來的第2個節點。 尾巴數來的第2個節點是4,刪除之後,更新連結,輸出答案如下 1->2->3->5
Thumbnail
sort reverse count index copy len min max sum any all
Thumbnail
sort reverse count index copy len min max sum any all
Thumbnail
題目:在此 kata 中,您將創建一個包含列表並返回具有相反順序的列表的函數。範例(輸入->輸出) * [1, 2, 3, 4] -> [4, 3, 2, 1] * [9, 2, 0, 7] -> [7, 0, 2, 9]
Thumbnail
題目:在此 kata 中,您將創建一個包含列表並返回具有相反順序的列表的函數。範例(輸入->輸出) * [1, 2, 3, 4] -> [4, 3, 2, 1] * [9, 2, 0, 7] -> [7, 0, 2, 9]
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News