板凳-------Mysql cookbook學習 (十二--------3_3)

https://cloud.tencent.com/developer/article/1454690
侯哥的Python分享
# 創建節點
class Node(object):def __init__(self,item):self.element = itemself.next = None# 創建單鏈表類
class SingleLinkList(object):def __init__(self):self.header = Noneself.length = 0# 1、判斷是否為空def is_empty(self):if self.header == None:return Trueelse:return False# 2、頭部插入def add(self,node):if self.is_empty():self.header = nodeelse:node.next = self.headerself.header = node# currentNode = self.headerself.length += 1# 3、尾部插入def appent(self,node):currentNode = self.headerif self.is_empty():self.add(node)else:while (currentNode.next != None):currentNode = currentNode.nextcurrentNode.next = nodeself.length += 1# 4、指定位置插入def insert(self,node,index):currentNode = self.headerif index>self.length+1 or index<=0:print("你要插入的位置不對,請重現選擇位置")if index == 1:self.add(node)elif index == 2:node.next = self.header.nextself.header.next = nodeself.length += 1else:for i in range(1,index-1):currentNode = currentNode.nextnode.next = currentNode.nextcurrentNode.next = nodeself.length += 1# 5、遍歷def travel(self):currentNode = self.headerif self.length == 0:print("你要遍歷的鏈表沒有數據\n")else:print("你要遍歷的鏈表里面的元素有:",end=" ")for i in  range(self.length):print("%s "%currentNode.element,end=" ")currentNode = currentNode.nextprint("\n")# 6、排序不用交換節點的位置,只需要交換節點上的數據值def list_sort(self):for i in range(0,self.length-1):currentNode = self.headerfor j in range(0,self.length-i-1):if  currentNode.element > currentNode.next.element:temp = currentNode.elementcurrentNode.element = currentNode.next.elementcurrentNode.next.element = tempcurrentNode = currentNode.next# 7、按索引刪除def remove(self,index):if index<=0 or index>self.length:print("你輸入的下標不對,請重新輸入")returnelse:if index == 1:self.header = self.header.nextcurrentNode = self.headerelif index == 2:currentNode = self.headercurrentNode.next = currentNode.next.nextelse:currentNode = self.headerfor i in range(1,index-1):currentNode = currentNode.nextcurrentNode.next = currentNode.next.nextself.length -= 1# 8、查找是否包含,并返回下標def isContain(self,num):contain = 0currentNode = self.headerfor i in range(self.length):if currentNode.element == num:print("%d在鏈表中%d處\n"%(num,i))contain = 1currentNode = currentNode.nextif contain == 0:print("%d不在鏈表中\n"%num)# 9、根據下標找節點def searchNodeByIndex(self,index):currentNode = self.headerif index<=0 or index>self.length:print("你輸入的下標不對,請重新輸入\n")return 0else:for i in range(index-1):currentNode = currentNode.nextreturn currentNode# 10、根據下標修改節點的值def modifyByIndex(self,index,num):currentNode = self.headerif index<=0 or index>self.length:print("你輸入的下標不對,請重新輸入\n")else:for i in range(index-1):currentNode = currentNode.nextcurrentNode.element = numdef main():# 創建一個節點對象node1 = Node(1)# 創建一個單鏈表對象single_link_list = SingleLinkList()print("驗證空鏈表的遍歷")single_link_list.travel()print("驗證頭插")single_link_list.add(node1)single_link_list.travel()print("驗證尾插")node2 = Node(2)single_link_list.appent(node2)single_link_list.travel()print("驗證按位置插入")node3 = Node(3)single_link_list.insert(node3,1)single_link_list.travel()print("繼續驗證頭插")node4 = Node(5)single_link_list.add(node4)single_link_list.travel()print("繼續驗證按位置插入")node5 = Node(4)single_link_list.insert(node5,4)single_link_list.travel()print("驗證刪除")single_link_list.remove(3)single_link_list.travel()print("驗證查找一個節點是否在鏈表中")single_link_list.isContain(8)print("驗證按下標查找節點")node = single_link_list.searchNodeByIndex(2)print("第二個節點的值為:%s"%node.element)print("\n驗證排序")single_link_list.list_sort()single_link_list.travel()print("驗證修改")single_link_list.modifyByIndex(2,10)single_link_list.travel()if __name__ == '__main__':main()驗證空鏈表的遍歷
你要遍歷的鏈表沒有數據驗證頭插
你要遍歷的鏈表里面的元素有: 1  驗證尾插
你要遍歷的鏈表里面的元素有: 1  2  驗證按位置插入
你要遍歷的鏈表里面的元素有: 3  1  2  繼續驗證頭插
你要遍歷的鏈表里面的元素有: 5  3  1  2  繼續驗證按位置插入
你要遍歷的鏈表里面的元素有: 5  3  1  4  2  驗證刪除
你要遍歷的鏈表里面的元素有: 5  3  4  2  驗證查找一個節點是否在鏈表中
8不在鏈表中驗證按下標查找節點
第二個節點的值為:3驗證排序
你要遍歷的鏈表里面的元素有: 2  3  4  5  驗證修改
你要遍歷的鏈表里面的元素有: 2  10  4  5
https://cloud.tencent.com/developer/article/1454690
=========================================
優化說明:
1.	時間復雜度改進:
o	原append方法需要遍歷整個鏈表,時間復雜度為O(n)
o	優化后append方法直接通過tail操作,時間復雜度降為O(1)
2.	空間復雜度:
o	只增加了一個tail指針,空間復雜度仍為O(1)
3.	邊界情況處理:
o	空鏈表時tail為None
o	只有一個結點時header和tail指向同一個結點
o	刪除尾結點時需要更新tail
4.	其他優勢:
o	新增get_tail()方法可以直接獲取尾結點
o	在需要頻繁操作鏈表尾部時性能顯著提升
這種優化特別適合需要頻繁在鏈表尾部進行操作的應用場景,如實現隊列等數據結構。
# 創建節點
class Node(object):def __init__(self,item):self.element = itemself.next = None# 創建單鏈表類
class SingleLinkList(object):def __init__(self):self.header = Noneself.tail = None  # 新增尾結點引用self.length = 0# 1、判斷是否為空   def is_empty(self):return self.header is None# 2、頭部插入 def add(self, node):if self.is_empty():self.header = nodeself.tail = node  # 鏈表為空時,頭尾都指向新節點else:node.next = self.headerself.header = nodeself.length += 1# 3、尾部插入def append(self, node):  # 修正了原方法名拼寫錯誤(appent->append)if self.is_empty():self.add(node)else:self.tail.next = node  # 直接通過tail添加self.tail = node      # 更新tailself.length += 1# 4、指定位置插入   def insert(self, node, index):if index > self.length + 1 or index <= 0:print("插入位置無效")returnif index == 1:self.add(node)elif index == self.length + 1:  # 尾部插入情況self.append(node)else:currentNode = self.headerfor _ in range(1, index-1):currentNode = currentNode.nextnode.next = currentNode.nextcurrentNode.next = nodeself.length += 1#  、按索引刪除    def remove(self, index):if index <= 0 or index > self.length:print("刪除位置無效")returnif index == 1:self.header = self.header.nextif self.length == 1:  # 如果刪除后鏈表為空self.tail = Noneelse:currentNode = self.headerfor _ in range(1, index-1):currentNode = currentNode.nextcurrentNode.next = currentNode.next.nextif index == self.length:  # 如果刪除的是尾結點self.tail = currentNodeself.length -= 1# 5、遍歷def travel(self):currentNode = self.headerif self.length == 0:print("鏈表為空")else:print("鏈表元素:", end=" ")for _ in range(self.length):print(currentNode.element, end=" ")currentNode = currentNode.nextprint()def get_tail(self):return self.tail  # 新增方法,直接返回尾結點# 6、排序不用交換節點的位置,只需要交換節點上的數據值def list_sort(self):for i in range(0,self.length-1):currentNode = self.headerfor j in range(0,self.length-i-1):if  currentNode.element > currentNode.next.element:temp = currentNode.elementcurrentNode.element = currentNode.next.elementcurrentNode.next.element = tempcurrentNode = currentNode.next# 8、查找是否包含,并返回下標def isContain(self,num):contain = 0currentNode = self.headerfor i in range(self.length):if currentNode.element == num:print("%d在鏈表中%d處\n"%(num,i))contain = 1currentNode = currentNode.nextif contain == 0:print("%d不在鏈表中\n"%num)# 9、根據下標找節點def searchNodeByIndex(self,index):currentNode = self.headerif index<=0 or index>self.length:print("你輸入的下標不對,請重新輸入\n")return 0else:for i in range(index-1):currentNode = currentNode.nextreturn currentNode# 10、根據下標修改節點的值def modifyByIndex(self,index,num):currentNode = self.headerif index<=0 or index>self.length:print("你輸入的下標不對,請重新輸入\n")else:for i in range(index-1):currentNode = currentNode.nextcurrentNode.element = numif __name__ == '__main__':lst = SingleLinkList()print("空鏈表尾結點:", lst.get_tail())lst.add(Node(1))print("添加1后尾結點:", lst.get_tail().element)lst.append(Node(2))print("追加2后尾結點:", lst.get_tail().element)lst.insert(Node(3), 3)  # 在末尾插入print("插入3后尾結點:", lst.get_tail().element)lst.remove(3)  # 刪除尾結點print("刪除尾結點后新尾結點:", lst.get_tail().element)空鏈表尾結點: None
添加1后尾結點: 1
追加2后尾結點: 2
插入3后尾結點: 3
刪除尾結點后新尾結點: 2開啟新對話
單循環鏈表
class LNode:def __init__(self, elem, next_=None):self.elem = elemself.next = next_class LinkedListUnderflow(Exception):passclass LCList:def __init__(self):self._rear = Nonedef is_empty(self):return self._rear is Nonedef prepend(self, elem):p = LNode(elem)if self._rear is None:p.next = p self._rear = pelse:p.next = self._rear.nextself._rear.next = p  # Fixed typo: changed 'P' to 'p'def append(self, elem):self.prepend(elem)self._rear = self._rear.nextdef pop(self):if self._rear is None:raise LinkedListUnderflow("in pop of CLList")p = self._rear.nextif self._rear is p:self._rear = Noneelse:self._rear.next = p.nextreturn p.elemdef printall(self):if self.is_empty():returnp = self._rear.nextwhile True:print(p.elem, end='')if p is self._rear:breakp = p.nextprint(', ', end='')print()if __name__ == '__main__':# Create a new circular linked listclist = LCList()# Test is_empty on new listprint("Is empty?", clist.is_empty())  # Should print True# Append some elementsclist.append(1)clist.append(2)clist.append(3)# Prepend an elementclist.prepend(0)# Print all elementsprint("List elements:")clist.printall()  # Should print 0, 1, 2, 3# Test popprint("Popped:", clist.pop())  # Should pop 0print("After pop:")clist.printall()  # Should print 1, 2, 3# Pop remaining elementsprint("Popped:", clist.pop())print("Popped:", clist.pop())print("Popped:", clist.pop())# Test empty listprint("Is empty?", clist.is_empty())  # Should print Truetry:clist.pop()except LinkedListUnderflow as e:print("Error:", e)  # Should catch the underflow error
=========================================
Is empty? True
List elements:
0, 1, 2, 3
Popped: 0
After pop:
1, 2, 3
Popped: 1
Popped: 2
Popped: 3
Is empty? True
Error: in pop of CLList雙循環鏈表:
class LNode:def __init__(self, elem, next_=None):self.elem = elemself.next = next_class LinkedListUnderflow(Exception):passclass DLNode(LNode):def __init__(self, elem, prev=None, next_=None):super().__init__(elem, next_)self.prev = prevclass LList1:def __init__(self):self._head = Noneself._rear = Nonedef is_empty(self):return self._head is Nonedef prepend(self, elem):pass  # To be overridden by DLListdef append(self, elem):pass  # To be overridden by DLListdef pop(self):pass  # To be overridden by DLListdef printall(self):p = self._headwhile p is not None:print(p.elem, end='')if p.next is not None:print(', ', end='')p = p.nextprint()class DLList(LList1):def __init__(self):super().__init__()def prepend(self, elem):p = DLNode(elem, None, self._head)if self._head is None:self._rear = pelse:self._head.prev = pself._head = pdef append(self, elem):p = DLNode(elem, self._rear, None)if self._head is None:self._head = pelse:self._rear.next = pself._rear = pdef pop(self):if self._head is None:raise LinkedListUnderflow("in pop of DLList")e = self._rear.elemself._rear = self._rear.previf self._rear is None:self._head = Noneelse:self._rear.next = Nonereturn edef pop_first(self):if self._head is None:raise LinkedListUnderflow("in pop_first of DLList")e = self._head.elemself._head = self._head.nextif self._head is None:self._rear = Noneelse:self._head.prev = Nonereturn edef printall_reverse(self):p = self._rearwhile p is not None:print(p.elem, end='')if p.prev is not None:print(', ', end='')p = p.prevprint()if __name__ == '__main__':# Create a new doubly linked listdlist = DLList()# Test is_empty on new listprint("Is empty?", dlist.is_empty())  # Should print True# Append some elementsdlist.append(1)dlist.append(2)dlist.append(3)# Prepend an elementdlist.prepend(0)# Print all elements forwardprint("List elements (forward):")dlist.printall()  # Should print 0, 1, 2, 3# Print all elements in reverseprint("List elements (reverse):")dlist.printall_reverse()  # Should print 3, 2, 1, 0# Test pop (removes from end)print("Popped from end:", dlist.pop())  # Should pop 3print("After pop from end:")dlist.printall()  # Should print 0, 1, 2# Test pop_first (removes from front)print("Popped from front:", dlist.pop_first())  # Should pop 0print("After pop from front:")dlist.printall()  # Should print 1, 2# Pop remaining elementsprint("Popped from end:", dlist.pop())print("Popped from end:", dlist.pop())# Test empty listprint("Is empty?", dlist.is_empty())  # Should print Truetry:dlist.pop()except LinkedListUnderflow as e:print("Error:", e)  # Should catch the underflow error=============================================
Is empty? True
List elements (forward):
0, 1, 2, 3
List elements (reverse):
3, 2, 1, 0
Popped from end: 3
After pop from end:
0, 1, 2
Popped from front: 0
After pop from front:
1, 2
Popped from end: 2
Popped from end: 1
Is empty? True
Error: in pop of DLList

雙循環的反轉與冒泡排序

class DLNode:def __init__(self, elem, prev=None, next_=None):self.elem = elemself.prev = prevself.next = next_class DLList:def __init__(self):self._head = Noneself._rear = Nonedef is_empty(self):return self._head is Nonedef prepend(self, elem):p = DLNode(elem, None, self._head)if self._head is None:self._rear = pp.next = pp.prev = pelse:p.next = self._headp.prev = self._rearself._head.prev = pself._rear.next = pself._head = pdef append(self, elem):p = DLNode(elem, self._rear, None)if self._head is None:self._head = pp.next = pp.prev = pelse:p.prev = self._rearp.next = self._headself._rear.next = pself._head.prev = pself._rear = pdef reverse(self):if self.is_empty() or self._head is self._rear:returncurrent = self._headwhile True:# 交換prev和next指針current.prev, current.next = current.next, current.prevcurrent = current.prev  # 移動到下一個節點if current is self._head:  # 循環結束條件break# 交換頭尾指針self._head, self._rear = self._rear, self._headdef sort(self):if self.is_empty() or self._head is self._rear:returnswapped = Truestart = self._headwhile swapped:swapped = Falsecurrent = startwhile True:next_node = current.nextif next_node is start:  # 循環結束條件breakif current.elem > next_node.elem:# 交換數據current.elem, next_node.elem = next_node.elem, current.elemswapped = Truecurrent = next_nodedef print_forward(self):if self.is_empty():print("Empty list")returncurrent = self._headwhile True:print(current.elem, end=" ")current = current.nextif current is self._head:breakprint()def print_backward(self):if self.is_empty():print("Empty list")returncurrent = self._rearwhile True:print(current.elem, end=" ")current = current.previf current is self._rear:breakprint()# 測試代碼
if __name__ == "__main__":dll = DLList()dll.append(3)dll.append(1)dll.append(4)dll.append(2)print("Original list (forward):")dll.print_forward()  # 3 1 4 2print("\nReversed list (forward):")dll.reverse()dll.print_forward()  # 2 4 1 3print("\nSorted list:")dll.sort()dll.print_forward()  # 1 2 3 4print("\nBackward traversal:")dll.print_backward()  # 4 3 2 1if current.elem > next_node.elem:# 交換數據current.elem, next_node.elem = next_node.elem, current.elemswapped = Truecurrent = next_nodedef print_forward(self):if self.is_empty():print("Empty list")returncurrent = self._headwhile True:print(current.elem, end=" ")current = current.nextif current is self._head:breakprint()def print_backward(self):if self.is_empty():print("Empty list")returncurrent = self._rearwhile True:print(current.elem, end=" ")current = current.previf current is self._rear:breakprint()# 測試代碼
if __name__ == "__main__":dll = DLList()dll.append(3)dll.append(1)dll.append(4)dll.append(2)print("Original list (forward):")dll.print_forward()  # 3 1 4 2print("\nReversed list (forward):")dll.reverse()dll.print_forward()  # 2 4 1 3print("\nSorted list:")dll.sort()dll.print_forward()  # 1 2 3 4print("\nBackward traversal:")dll.print_backward()  # 4 3 2 1
Original list (forward):
3 1 4 2 Reversed list (forward):
2 4 1 3 Sorted list:
1 2 3 4 Backward traversal:
4 3 2 1

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916708.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916708.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916708.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flutter開發實戰之CI/CD與發布流程

第12章:CI/CD與發布流程 在前面的章節中,我們學習了Flutter應用開發的各個方面,從基礎UI構建到復雜的狀態管理,從網絡請求到本地存儲。現在,我們將探討一個同樣重要但常被忽視的話題:如何將我們精心開發的應用高效、可靠地發布到各大應用商店。 想象一下,你花費了數月…

ElasticSearch 的3種數據遷移方案

在實際工作中&#xff0c;我們經常會遇到需要將自建的 Elasticsearch 遷移上云&#xff0c;或者遷移到其他 ES 集群的情況。這時&#xff0c;選擇合適的數據遷移方案就顯得尤為重要啦。今天就來給大家介紹三種常用的遷移方案&#xff0c;分別是 COS 快照、logstash 和 elastics…

MySQL 中的“雙路排序”與“單路排序”:原理、判別與實戰調優

一句話導讀 ORDER BY 不能走索引時&#xff0c;MySQL 會在 Server 層做一次 filesort。內部實現分 單路&#xff08;全字段&#xff09; 與 雙路&#xff08;rowid&#xff09; 兩種&#xff1b;了解它們的觸發條件、判別方法與調優思路&#xff0c;是 SQL 性能優化的必修課。一…

OpenLayers 綜合案例-信息窗體-彈窗

看過的知識不等于學會。唯有用心總結、系統記錄&#xff0c;并通過溫故知新反復實踐&#xff0c;才能真正掌握一二 作為一名摸爬滾打三年的前端開發&#xff0c;開源社區給了我飯碗&#xff0c;我也將所學的知識體系回饋給大家&#xff0c;助你少走彎路&#xff01; OpenLayers…

GaussDB 開發基本規范

1 集中式1.1數據庫價值特性推薦特性分類特性列表說明表類型PARTITION表數據分區存儲引擎行存儲按行順序存儲表&#xff0c;建議點查&#xff0c;增刪改操作較多場景下使用事務事務塊顯式啟動事務單語句事務不顯式啟動事務&#xff0c;單語句即為事務擴容在線擴容擴節點和數據重…

工作中使用git可能遇到的場景

1.main歷史發布版本出問題需要查看&#xff0c;怎么切換歷史發布版本&#xff1f;git reset --hard commitid 更新本地庫和代碼2.A分支的代碼已經做過一些功能&#xff0c;想遷移到B分支當前在A分支git checkout B &#xff08;切換到B分支&#xff09;git cherry-pick A的com…

【Spring AI】本地大型語言模型工具-Ollama

Ollama 是一個專注于在本地運行大型語言模型&#xff08;LLM&#xff09;的工具&#xff0c;支持多種開源模型&#xff08;如 Llama 3、Mistral、Gemma 等&#xff09;&#xff0c;提供簡單的命令行和 API 接口。<dependency><groupId>org.springframework.ai</…

電機S加減速

STM32步進電機S型加減速算法_stm32___build__-2048 AI社區 以上&#xff0c;電機加減速說的非常清楚&#xff0c;收藏點贊&#xff01;

一、初識 Linux 與基本命令

作者&#xff1a;IvanCodes 日期&#xff1a;2025年7月28日 專欄&#xff1a;Linux教程 思維導圖 一、Linux 簡介 1.1 什么是 Linux? Linux 是一種自由、開源的類Unix操作系統內核&#xff0c;由林納斯托瓦茲 (Linus Torvalds) 在1991年首次發布。我們通常所說的 “Linux 系統…

解決angular與jetty websocket 每30s自動斷連的問題

背景&#xff1a;前端&#xff1a;angular 12&#xff0c;websocket接口由lib.dom.d.ts提供后端&#xff1a;java&#xff0c;websocket接口由jetty 12提供問題現象&#xff1a;前端連上server后&#xff0c;每隔30s就會斷開&#xff0c;由于長時間空閑&#xff0c;會導致webso…

【機器學習深度學習】模型私有化部署與微調訓練:賦能特定問題處理能力

目錄 前言 一、私有化部署的背景&#xff1a;通用能力 ≠ 企業實用 暴露問題 二、微調訓練的核心目的 2.1 動作一&#xff1a;私有化部署&#xff08;Private Deployment&#xff09; 2.2 動作二&#xff1a;領域微調&#xff08;Domain Fine-Tuning&#xff09; 2.3 微…

Seq2Seq學習筆記

Seq2Seq模型概述Seq2Seq&#xff08;Sequence-to-Sequence&#xff09;是一種基于深度學習的序列生成模型&#xff0c;主要用于處理輸入和輸出均為序列的任務&#xff0c;如機器翻譯、文本摘要、對話生成等。其核心思想是將可變長度的輸入序列映射為另一個可變長度的輸出序列。…

react useId

useId useId 是 React 18 引入的一個內置 Hook&#xff0c;用于生成唯一且穩定的 ID &#xff0c; 主要用于&#xff0c;解決在客戶端和服務器端渲染&#xff08;SSR&#xff09;時&#xff0c;動態生成 ID 可能導致的沖突問題&#xff1b; 特別適合用于&#xff0c;需要關聯 H…

排水管網實時監測筑牢城市安全防線

排水管網的實時監測工作&#xff0c;強調其對于保障城市安全的重要作用。“排水管網”明確了具體的關注對象&#xff0c;它是城市基礎設施的重要組成部分&#xff0c;承擔著雨水、污水排放等關鍵功能。“實時監測”突出了監測的及時性和持續性&#xff0c;意味著能夠隨時獲取排…

SZU大學物理實驗報告|電位差計

寫在前面&#xff1a;博文里放圖片&#xff0c;主要省去了對文檔的排版時間&#xff0c;實驗還是要自己做的&#xff0c;反正都要去實驗室上課&#xff0c;順帶鍛煉下動手能力。有些結果是實驗手寫的&#xff0c;所以看不到&#xff0c;有結果的可以對下結果差的不太多就行&…

RoPE簡單解析

文章目錄簡介拆解一些tricks簡介 因為RoPE的優異性能&#xff0c;其已成為各種大模型中位置編碼的首選&#xff0c;包括多模態模型&#xff1b;在一些多模態模型或視頻理解模型中&#xff0c;甚至會用到多維度RoPE。雖然RoPE已廣泛應用&#xff0c;之前也看了不少針對其原理解…

windows 獲取 APK 文件的包名和啟動 Activity 名稱

使用 aapt 命令確保環境變量配置正確&#xff1a;首先需要確保你的系統環境變量中包含了 Android SDK 的 build-tools 目錄路徑。這是因為 aapt 工具位于該目錄下。運行命令&#xff1a; 打開命令提示符&#xff08;CMD&#xff09;&#xff0c;然后輸入以下命令來查看 APK 的詳…

【Mac版】Linux 入門命令行快捷鍵+聯想記憶

Linux Mac 用戶終端命令行快捷鍵 符號速查全解作為一個剛接觸 Linux 和終端的 macOS 用戶&#xff0c;常常被命令行的各種快捷鍵和符號弄得頭暈腦脹&#xff0c;本文將帶你系統地掌握命令行中最常用的快捷鍵和符號&#xff0c;并通過邏輯聯想幫助你輕松記住每一個組合。一、基…

AUTOSAR Mcal Dio - 模塊介紹 + EB配置工具介紹

文章目錄1. 模塊簡介2. 主要功能3. 縮略語4. API接口5. 功能介紹5.1. ChannelGroup5.2. Dio_MaskedWritePort6. 序列圖6.1.讀GPIO電平6.2. 設置GPIO電平7. EB 工具配置7.1.General7.2.DioPort8. 參考資料1. 模塊簡介 Dio&#xff0c;全稱“Digital Input Output”。Dio模塊&am…

ICT模擬零件測試方法--晶體管測試

ICT模擬零件測試方法–晶體管測試 文章目錄ICT模擬零件測試方法--晶體管測試晶體管測試晶體管測試配置晶體管測試配置晶體管測量選項晶體管測試 i3070 在線測試軟件為每個晶體管提供兩種測試&#xff1a; 使用二極管測試對晶體管的兩個 PN 結進行測試。這是檢查設備存在的快速…