查看全部128種考試
軟件水平考試
 考試動態(tài) 報考指南 歷年真題 模擬試題 復(fù)習(xí)資料 心得技巧 專業(yè)英語 技術(shù)文章 軟考論壇 考試用書
 程序員 軟件設(shè)計師 網(wǎng)絡(luò)管理員 網(wǎng)絡(luò)工程師 系統(tǒng)分析師 數(shù)據(jù)庫系統(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 來源:考試吧Exam8.com) 更新:2005-3-25 11:20:00 軟件水平考試 考試論壇



三、棧和隊列

  1、知識點:

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

  棧定義:

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

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

  遞歸

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

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

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

         

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

  樹與二叉樹

  一、 知識點:

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

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

   2) 結(jié)點個數(shù)=1 
    
O

--0

O O

--1

O O O O

--2

 此樹的高度為2

  2.二叉樹定義:   

  結(jié)點個數(shù)>=0 .

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

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

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

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

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

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個結(jié)點的樹
    4) 二叉鏈表
    5) 三叉鏈表
    6) 哈夫曼樹
  5.二叉樹的遍歷
   先根 \
   中根 棧 中根遍歷(左子樹)根(右子樹),再用相同的方法處理左子樹,右子樹.
   后根 /
   先,中序已知求樹:先序找根,中序找確定左右子樹.
   層次遍歷(隊列實現(xiàn))
  6.線索二叉樹(穿線樹)
   中序線索二樹樹目的:利用空指針直接得到中序遍歷的結(jié)果.
   手段(方法):左指針為空,指向前趨,右指針為空,指向后繼.
  結(jié)點結(jié)構(gòu):

ltag Lch Data rch rtag

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

上一頁  [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一頁

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