查看全部128種考試
軟件水平考試
 考試動(dòng)態(tài) 報(bào)考指南 歷年真題 模擬試題 復(fù)習(xí)資料 心得技巧 專業(yè)英語(yǔ) 技術(shù)文章 軟考論壇 考試用書
 程序員 軟件設(shè)計(jì)師 網(wǎng)絡(luò)管理員 網(wǎng)絡(luò)工程師 系統(tǒng)分析師 數(shù)據(jù)庫(kù)系統(tǒng)工程師
1
2
3
4
5
6
7
8
9
10
ak47  
【字體: 程序員考試:數(shù)據(jù)結(jié)構(gòu)筆記
程序員考試:數(shù)據(jù)結(jié)構(gòu)筆記
spks.exam8.com 來(lái)源:考試吧Exam8.com) 更新:2005-3-25 11:20:00 軟件水平考試 考試論壇



三、棧和隊(duì)列

  1、知識(shí)點(diǎn):

  ● 棧的定義:操作受限的線性表
  ● 特點(diǎn):后進(jìn)先出
  ● 棧的存儲(chǔ)結(jié)構(gòu):順序,鏈接
   / push(s,d)
  ● 棧的基本操作:
   \ pop(s)

  棧定義:

  struct {
   datatype data[max_num];
   int top;
  };

  ●隊(duì)列定義
  特點(diǎn):先進(jìn)先出
  /入隊(duì)列 in_queue(Q,x)
  ●隊(duì)列的操作:
  \出隊(duì)列 del_queue(Q)
  ●隊(duì)列存儲(chǔ)結(jié)構(gòu):
  鏈隊(duì)列:
  Typedef struct node{
   Datatype data;
   Struct node *next;
  }NODE;
  Typedef struct {
   NODE *front;
   NODE *rear;
  }Queue;
  順序隊(duì)列:
  struct {
   datatype data[max_num];
   int front,rear;
  };
  問(wèn)題:
  隊(duì)列ó線性表
  假溢出<=循環(huán)隊(duì)列
  隊(duì)列滿,隊(duì)列空條件一樣<=浪費(fèi)一個(gè)存儲(chǔ)空間

  遞歸

  定義:?jiǎn)栴}規(guī)模為N的解依賴于小規(guī)模問(wèn)題的解。問(wèn)題的求解通過(guò)小規(guī)模問(wèn)題的解得到。
  包括二個(gè)步驟:
  1) 遞推 6!=>5!=>4!=>3!=>2!=>1!=>0!
  2) 回歸 720<=120<=24<=6 <=2 <=1 <=0
  遞歸工作棧實(shí)現(xiàn)遞歸的機(jī)制。

  2、有關(guān)算法:

  1) 順序,鏈表結(jié)構(gòu)下的出棧,入棧
  2) 循環(huán),隊(duì)列的入隊(duì)列,出隊(duì)列。
  3) 鏈隊(duì)列的入隊(duì)列,出隊(duì)列。
  4) 表達(dá)式計(jì)算:后綴表達(dá)式 35+6/4368/+*- 
          中綴表達(dá)式 (3+5)/6-4*(3+6/8)

         

  由于中綴比較難處理,計(jì)算機(jī)內(nèi)一般先將中綴轉(zhuǎn)換為后綴。
  運(yùn)算:碰到操作數(shù),不運(yùn)算,碰到操符,運(yùn)算其前兩個(gè)操作數(shù)。
   中綴=>后綴
  5) 迷宮問(wèn)題
  6) 線性鏈表的遞歸算法 一個(gè)鏈表=一個(gè)結(jié)點(diǎn)+一個(gè)鏈表
  int fuction(NODE *p) {
   if(p==NULL) return 0;
   else return(function(p->next));
  }

  樹與二叉樹

  一、 知識(shí)點(diǎn):

  1. 樹的定義: data_struct(D,R);

  其中:D中有一個(gè)根,把D和出度去掉,可以分成M個(gè)部分.
  D1,D2,D3,D4,D5…DM
  R1,R2,R3,R4,R5…RM
  而子樹Ri形成樹.
  1) 遞歸定義 高度

   2) 結(jié)點(diǎn)個(gè)數(shù)=1 
    
O

--0

O O

--1

O O O O

--2

 此樹的高度為2

  2.二叉樹定義:   

  結(jié)點(diǎn)個(gè)數(shù)>=0 .

  3. 術(shù)語(yǔ):左右孩子,雙親,子樹,度,高度等概念.

  4. 二叉樹的性質(zhì)

  ●層次為I的二叉樹 I層結(jié)點(diǎn) 2I 個(gè)
  ●高度為H的二叉樹結(jié)點(diǎn) 2H+1-1個(gè)
  ●H(點(diǎn))=E(邊)+1
  ●個(gè)數(shù)為N的完全二叉樹高度為|_LOG2n_|
  ●完全二叉樹結(jié)點(diǎn)編號(hào):從上到下,從左到右.

i結(jié)點(diǎn)的雙親: |_i/2_| |_i-1/2_| 1
i結(jié)點(diǎn)的左孩子: 2i 2i+1 2 3
i結(jié)點(diǎn)的右孩子: 2i+1 2i+2 4 5 6 7
(根) 1為起點(diǎn) 0為起點(diǎn)

  二叉樹的存儲(chǔ)結(jié)構(gòu):
    1) 擴(kuò)展成為完全二叉樹,以一維數(shù)組存儲(chǔ)。

A
B C
D E F
G H I
數(shù)組下標(biāo) 0 1 2 3 4 5 6 7 8 9 10 11 12
元素 A B C D E F G H         I

    2) 雙親表示法 

數(shù)組下標(biāo) 0 1 2 3 4 5 6 7 8
元素 A B C D E F G H I
雙親 -1 0 0 1 2 2 3 3 4

    3) 雙親孩子表示法

數(shù)組下標(biāo) 0 1 2 3 4 5
元素 A B C D E F
雙親 -1 0 0 1 2 2
左子 1 3 4      
右子 2 -1 5      

  結(jié)構(gòu):
    typedef struct {
     datatype data;
     int parent;
     int lchild;
     int rchild;
    }NODE;
    NODE tree[N]; // 生成N個(gè)結(jié)點(diǎn)的樹
    4) 二叉鏈表
    5) 三叉鏈表
    6) 哈夫曼樹
  5.二叉樹的遍歷
   先根 \
   中根 棧 中根遍歷(左子樹)根(右子樹),再用相同的方法處理左子樹,右子樹.
   后根 /
   先,中序已知求樹:先序找根,中序找確定左右子樹.
   層次遍歷(隊(duì)列實(shí)現(xiàn))
  6.線索二叉樹(穿線樹)
   中序線索二樹樹目的:利用空指針直接得到中序遍歷的結(jié)果.
   手段(方法):左指針為空,指向前趨,右指針為空,指向后繼.
  結(jié)點(diǎn)結(jié)構(gòu):

ltag Lch Data rch rtag

  Ltag=0,lch指向左孩子,ltag=1,指向前趨結(jié)點(diǎn)
  Rtag=0,rch指向右孩子;rtag=1,指向后繼結(jié)點(diǎn)
  中序遍歷: 1) 找最左結(jié)點(diǎn)(其左指針為空)
    2) 當(dāng)該結(jié)點(diǎn)的rtag=1,該結(jié)點(diǎn)的rch指向的就為后繼
    3) 當(dāng)rtag=0,后繼元素為右子樹中最左邊那個(gè)
  N個(gè)結(jié)點(diǎn)的二樹有空指針N+1個(gè) 

上一頁(yè)  [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一頁(yè)

轉(zhuǎn)帖于:軟件水平考試_考試吧
文章搜索  
看了本文的網(wǎng)友還看了:
網(wǎng)友評(píng)論
昵 稱: *  評(píng) 分: 1分 2分 3分 4分 5分
標(biāo)題:   匿名發(fā)表    (共有條評(píng)論)查看全部評(píng)論>>
版權(quán)聲明 -------------------------------------------------------------------------------------
  如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  付款方式  站內(nèi)導(dǎo)航  客服中心  友情鏈接  考試論壇  網(wǎng)站地圖
Copyright © 2004-2008 考試吧軟件水平考試網(wǎng) All Rights Reserved    
中國(guó)科學(xué)院研究生院權(quán)威支持(北京) 電 話:010-62168566 傳 真:010-62192699
百度大聯(lián)盟黃金認(rèn)證  十佳網(wǎng)絡(luò)教育機(jī)構(gòu)  經(jīng)營(yíng)許可證號(hào):京ICP060677