日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构 面试题

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构 面试题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1.數組
        • 1.1 尋找數組中第二小的元素
        • 1.2 找到數組中第一個不重復出現的整數
        • 1.3合并兩個有序數組
        • 1.4 重新排列數組中的正值和負值
    • 2.棧
        • 2.1 前綴表達式,中綴表達式,后綴表達式
          • 2.1.1 中綴表達式轉化為后綴表達式
          • 2.1.2 中綴表達式轉化為前綴表達式
        • 2.2使用棧計算后綴表達式
        • 2.3對棧的元素進行排序
        • 2.4判斷表達式是否括號平衡
    • 3.隊列
        • 3.1 使用隊列表示棧
        • 3.2 對隊列的前k個元素倒序
        • 3.3 使用隊列生成從1到n的二進制數
    • 4.鏈表
        • 4.1 反轉鏈表
        • 4.2檢測鏈表中的循環
        • 4.3返回鏈表倒數第N個節點
        • 4.4刪除鏈表中的重復項
    • 5.樹
        • 5.1 求二叉樹的高度
        • 5.2 在二叉搜索樹中查找第k個最大值
        • 5.3 查找與根節點距離k的節點
        • 5.4 在二叉樹中查找給定節點的祖先節點
    • 6.圖
        • 6.1 實現廣度和深度優先搜索
        • 6.2檢查圖是否為樹
        • 6.3計算圖的邊數
        • 6.4找到兩個頂點之間的最短路徑
    • 7.字典樹(這是一種高效的樹形結構,但值得單獨說明)
        • 7.1 計算字典樹中的總單詞數
        • 7.2 打印存儲在字典樹中的所有單詞
        • 7.3 使用字典樹對數組的元素進行排序
        • 7.4 使用字典樹從字典中形成單詞
        • 7.5 構建T9字典(字典樹+ DFS )
    • 8.散列表(哈希表)
        • 8.1 在數組中查找對稱鍵值對
        • 8.2 追蹤遍歷的完整路徑
        • 8.3 查找數組是否是另一個數組的子集
        • 8.4 檢查給定的數組是否不相交

1.數組

1.1 尋找數組中第二小的元素

思路:升序排序之后,輸出第二個數字

1.2 找到數組中第一個不重復出現的整數

1.3合并兩個有序數組

def merge_sort(a, b): ret = [] i = j = 0 while len(a) >= i + 1 and len(b) >= j + 1:if a[i] <= b[j]:ret.append(a[i])i += 1else:ret.append(b[j])j += 1 if len(a) > i:ret += a[i:] if len(b) > j:ret += b[j:] return retif __name__ == '__main__': a = [1,3,4,6,7,78,97,190] b = [2,5,6,8,10,12,14,16,18] print(merge_sort(a, b))

1.4 重新排列數組中的正值和負值

2.棧

2.1 前綴表達式,中綴表達式,后綴表達式

2.1.1 中綴表達式轉化為后綴表達式

中綴表達式轉后綴表達式的規則:

  • 1.遇到操作數,直接輸出;
  • 2.棧為空時,遇到運算符,入棧;
  • 3.遇到左括號,將其入棧;
  • 4.遇到右括號,執行出棧操作,并將出棧的元素輸出,直到彈出棧的是左括號,左括號不輸出;
  • 5.遇到其他運算符’+”-”*”/’時,彈出所有優先級大于或等于該運算符的棧頂元素,然后將該運算符入棧;
  • 6.最終將棧中的元素依次出棧,輸出。
    經過上面的步驟,得到的輸出既是轉換得到的后綴表達式。
2.1.2 中綴表達式轉化為前綴表達式

2.2使用棧計算后綴表達式

2.3對棧的元素進行排序

2.4判斷表達式是否括號平衡

3.隊列

3.1 使用隊列表示棧

3.2 對隊列的前k個元素倒序

3.3 使用隊列生成從1到n的二進制數

4.鏈表

4.1 反轉鏈表

4.2檢測鏈表中的循環

4.3返回鏈表倒數第N個節點

4.4刪除鏈表中的重復項

5.樹

5.1 求二叉樹的高度

5.2 在二叉搜索樹中查找第k個最大值

5.3 查找與根節點距離k的節點

5.4 在二叉樹中查找給定節點的祖先節點

6.圖

6.1 實現廣度和深度優先搜索

6.2檢查圖是否為樹

6.3計算圖的邊數

6.4找到兩個頂點之間的最短路徑

7.字典樹(這是一種高效的樹形結構,但值得單獨說明)

7.1 計算字典樹中的總單詞數

7.2 打印存儲在字典樹中的所有單詞

7.3 使用字典樹對數組的元素進行排序

7.4 使用字典樹從字典中形成單詞

7.5 構建T9字典(字典樹+ DFS )

8.散列表(哈希表)

8.1 在數組中查找對稱鍵值對

8.2 追蹤遍歷的完整路徑

8.3 查找數組是否是另一個數組的子集

8.4 檢查給定的數組是否不相交

參考:
(1) https://baijiahao.baidu.com/s?id=1609200503642486098&wfr=spider&for=pc - (應對程序員面試,你必須知道的八大數據結構)

總結

以上是生活随笔為你收集整理的数据结构 面试题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。