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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数据结构1800题-错题集-第三章

發布時間:2024/8/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构1800题-错题集-第三章 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據結構1800刷題😁錯題集

序號標題為解答,引用為題目和答案

  • 由棧的先進后出原則
    入棧:1——n-i+1——n
    輸出:P1——Pi——Pn
    出棧:n——n-i+1——1
  • 若已知一個棧的入棧序列是1,2,3,? ,n,其輸出序列為p1,p2,p3,?, pN,若pN 是n,則
    pi 是( D ) 。
    A. i B. n-i C. n-i+1 D. 不確定

  • 棧的圖解,注意初始頂指針
  • 若一個棧以向量V[1…n] 存儲,初始棧頂指針top 為n+1,則下面x 進棧的正確操作是
    ( C )。
    A. top:=top+1; V [top]:=x B. V [top]:=x; top:=top+1
    C. top:=top-1; V [top]:=x D. V [top]:=x; top:=top-1

  • 共享棧 圖解
  • 若棧采用順序存儲方式存儲, 現兩棧共享空間V[1…m] ,top[i] 代表第i 個棧( i =1,2) 棧頂,
    棧1 的底在v[1] ,棧2 的底在V[m] ,則棧滿的條件是( B )。
    A. |top[2]-top[1]|=0 B. top[1]+1=top[2] C. top[1]+top[2]=m D. top[1]=top[2]

  • 思路:題目給出的是中綴表達式,先將表達式用樹的形式來顯示,再后序遍歷。
  • 表達式a*(b+c)-d 的后綴表達式是( B )?!灸暇├砉ご髮W2001 一、2(1.5 分)】
    A.abcd*± B. abc+d- C. abc+d- D. -+*abcd

  • 分為兩個棧,分別存儲,數值和運算符。(應用??途W解答)
    鏈接:https://www.nowcoder.com/questionTerminal/3a42f706132940218436b70cc9d32227
    來源:??途W
  • 一、準備兩個棧:操作數棧s1,運算符棧s2。
    二、從【左至右】掃描表達式:32^(4+22-63)-5;
    遵循的原則是: 遇到操作數入s1棧;若遇到運算符c,則需要與s2的棧頂 字符c2進行優先級比較;
    《1》若c > c2,則c入棧;
    《2》若c < c2,則c2退棧,并將s1棧頂的兩個元素退棧與操作符一起運算,將結果入s1棧;
    (1)操作數3,入棧s1;
    (2)運算符,入棧s2;
    (3)操作數2,入棧s1;
    (4)運算符^ ,入棧s2;(理由是:^的優先級 高于 的優先級)
    (5)運算符(,直接入s2;
    (6)操作數4,入棧s1;
    (7)運算符+,入棧s2;(理由是:( 后面的運算符直接入棧)
    (8)…數2,入棧s1;
    (9)…符,入棧s2;(理由是:的優先級 高于 +的優先級)
    (10)…數2,入棧s1;
    (11)…符 -,(由于 -的優先級低于)s2的棧頂字符 * 出棧,并完成22=4的運算,將結果4存入s1中;—s1:3,2,4,4;
    (由于 -的優先級低于+)s2的棧頂字符+出棧,并完成4+4=8的運算,將結果8存入s1中;—s1:3,2,8;
    此時,- 成為了(后的運算符,則直接入棧s2;—s2:^(-;
    (12)…數6;

    表達式3* 2^(4+22-63)-5 求值過程中當掃描到6 時,對象棧和算符棧為( ),其中^
    為乘冪。
    A. 3,2,4,1,1 ; (^(+-
    B. 3,2,8 ; (^-
    C. 3,2,4,2,2; (^(-
    D. 3,2,8 ; (*^(-

  • 1> 當有多于一個節點時,鏈表表示的隊列的刪除操作只需要修改頭指針即可,將頭指針定義為head=head.next 此時不需要修改尾指針;
    2> 當隊列只有一個節點時,該節點既是頭又是尾,如果head==tail 則需要修改尾指針將隊列置空。
  • 用鏈接方式存儲的隊列,在進行刪除運算時( D )。
    A. 僅修改頭指針
    B. 僅修改尾指針
    C. 頭、尾指針都要修改
    D. 頭、尾指針可能
    都要修改

  • 同上
  • 用不帶頭結點的單鏈表存儲隊列時,其隊頭指針指向隊頭結點,其隊尾指針指向隊尾結點,則在進行刪除操作時( D )?!颈本├砉ご髮W2001 六、3(2 分)】
    A.僅修改隊頭指針
    B. 僅修改隊尾指針
    C. 隊頭、隊尾指針都要修改
    D. 隊頭,隊尾指針都可能要修改

  • 在順序隊列中,當隊尾指針已經到數組的上界,不能再有入隊操作,但其實數組中還有空位置,這就叫做==“假溢出”,解決假溢出的途徑----采用循環隊列==。
  • 假設以數組A[m] 存放循環隊列的元素,其頭尾指針分別為front 和rear,則當前隊列中的
    元素個數為( A )。【北京工商大學2001 一、2(3 分)】
    A.(rear-front+m)%m
    B.rear-front+1
    C.(front-rear+m)%m
    D.(rear-front)%m

  • 注意是 m+1 個內存空間
  • 循環隊列存儲在數組 A[0…m] 中,則入隊時的操作為 ( D )。
    A. rear=rear+1
    B. rear=(rear+1) mod (m-1)
    C. rear=(rear+1) mod m
    D. rear=(rear+1)mod(m+1)

  • 最大容量為 n 的循環隊列,隊尾指針是 rear,隊頭是 front,則隊空的條件是 ( B )。
    A. (rear+1) MOD n=front
    B. rear=front
    C.rear+1=front
    D. (rear-l) MOD n=front

  • 循環隊列的相關條件和公式:
  • 1.隊空條件:rear==front
    2.隊滿條件:(rear+1) %QueueSIze==front,其中QueueSize為循環隊列的最大長度
    3.計算隊列長度:(rear-front+QueueSize)%QueueSize
    4.入隊:(rear+1)%QueueSize
    5.出隊:(front+1)%QueueSize

  • 棧的規律,根據給出的選項,從左到右,逐個查看當前這個元素,往后面比他順序小的元素,是否按照逆序的序列拍好。
  • 依次讀入數據元素序列 {a,b,c, d,e,f, g}進棧 ,每進一個元素,機器可要求下一個元素進棧或彈棧, 如此進行, 則棧空時彈出的元素構成的序列是以下哪些序列? (A D)
    A.{d ,e,c,f,b,g,a} B. {f ,e,g,d,a,c,b}
    C. {e,f,d,g,b, c,a} D. {c ,d,b,e,f,a, g}

  • 兩個棧共用靜態存儲空間,棧底相接,但總的空間大小有限 也存在溢出問題
  • 兩個棧共用靜態存儲空間,對頭使用也存在空間溢出問題。 ( V )

  • 兩個棧,bottom分別為線性表的兩端
  • 當兩個棧共享一存儲區時, 棧利用一維數組 stack(1,n)表示,兩棧頂指針為 top[1] 與 top[2] ,則當棧 1 空時, top[1] 為0,棧 2 空時 ,top[2] 為n+1,棧滿時為 top[1] + 1 = top[2]。

  • 如果多于兩個棧時,還是采用順序存儲,則一個滿了另外??臻g雖然有空,但是必須要移動棧中元素才能使用別的浪費的空間,這樣算法的效率就不高了,此時不如直接采用鏈接存儲好了
  • 多個棧共存時,最好用 鏈式存儲作為存儲結構

  • 假溢出-rear超出了隊列所在分配空間,但是前面還有空白的空間
  • 循環隊列的引入,目的是為了克服 假溢出時候,避免移動大量元素

  • 區分循環隊列的滿與空,只有兩種方法,它們是 設標記和犧牲一個存儲單元。

    應用題后續附上

    總結

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

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