2012年4月14日 星期六

文章整併計畫

http://jufmore.blogspot.com/
考量文章量數,且Google blogger有良好的分類功能,今日才了解其使用功能,故之後文章將整併到http://jufmore.blogspot.com/

2012年4月11日 星期三

【資料結構】二元樹練習

比較兩棵二元樹是否相等?
boolean  equal (  TreePtr  s  ,t)
{
if ( s == NULL &&  t == NULL  )
return true;
else if (s==NULL  ||  t==NULL)
return false;
else

【程式語言】練習LISP

Scheme函數的功能為何?

(define (x list)
     cond ( ( null ? lis ) 0)
          (  ( not  (list ?  (car lis )))
            (  cond  ((  eqv    ?  (car  lis  )   nil  )   (   x    (  cdr   lis  )))
          (  else  ( + 1   (x  (  cdr   lis  ))))
           )
          (  else    (   + (  x (  car   lis ))   (   x    (cdr    lis )))
     )
)
解:

2012年4月7日 星期六

【程式語言】LISP練習

計算輸入參數的原子個數(不考慮原子為Nil)


(defun   AtomCount(lis))

【程式語言】LISP

常用於AI,直譯式程式語言。

  • 基本構成要素
    • 原子(ATOM)
      • 符號
      • 數值
        • 整數
        • 浮點數
    • 串列(LIST) :(a b c),(a (b c)d)、空串列
  • 函式呼叫:
          (函式名稱  參數)
          >'(setg    a     3)
          >(setg     a     3)(解答)

【程式語言】程式語言之優劣分析22

  • 可讀性(readability):
    • 最少量的超負荷運算子,不會混淆運算子的涵義。
    • 正交性(Orthogonality):(沒有重複)
      • 相對少量的簡單基本程式單元,使得程式構成較簡單。
      • 以各種簡單基本程式單元,組合成較複雜的程式單元。
    • 提供流程控制結構,使其有結構化程式設計的能力。
    • 有定義抽象資料型態的能力,可隱藏複雜資料結構的實作。

【資料結構】二元樹種類-133

前中後序追蹤順序只給其一,其二元樹的種類可能有幾種?

解:

【資料結構】二元樹表示法

129
串列表示法:
struct treenode
{
datatype data      (節點名稱/資料)
struct treenode    lchild,  rchild;      (無父指標)
                       左指標  右指標
}

陣列表示法:(將二元樹存在一維陣列中)
(1)樹根:A[1](此條件要先確立)
(2)節點A[i]的
父節點:

左子節點:

右子節點:

EX:

※隱含式陣列表示法(Implicit array):
將node加以編號儲存在陣列中,能以公式推導出tree中父子節點關係(使用level-ordering層次追蹤)
i=5,
A[5]的parent==A[2]
A[5]的左子node=A[2*5]=A[10]
A[5]的右子node=A[2*5+1]=A[11]



2012年4月5日 星期四

【資料結構】今日精選-二元樹

心得:
基本上這題以我拙見我是記不起來的,所以我把它列入今日的精選。



已知某一樹分支度(degree)為1_node有5個,2node->4,3node->3,4node->2,5node->1;求該數共幾個node?

解一:

2012年4月3日 星期二

【資料結構】樹Tree

通用定義:
 「樹」(Trees)是一種模擬現實生活中樹幹和樹枝的資料結構。


名詞定義:

【資料結構】Queue佇列

FIFO
「先進先出」(First In, First Out)

公眾說法:

「佇列」(Queues)是一種和堆疊十分相似的資料結構,在日常生活中隨處可見的排隊人潮,例如:在郵局排隊寄信、銀行排隊存錢或電影院前排隊買票的隊伍,其組成的線性串列就是一種佇列。

【資料結構】後序求前序_負號

後序>>>>>  AB5*2-(負號)D*-+

【資料結構】中序式轉後序式

摘重點:


解法:
a+b*d+c/d   =>    ((a+(b*d))+(c/d)) -> abd*+cd/+


例如(a+b)*(c+d)這個式子,依演算法的輸出過程如下:

【資料結構】-陣列

說到陣列,這也是一個非常令我頭痛的朋友;不認識他的時候覺得很煩,認識他之後用來寫程式真的是得心應手;不過在這裡他跟記憶體放在一起談的時候,我又開始對他不熟悉了。

好吧,我覺得維基百科裡我只看到一個重點
在寫C語言時
數組設計之初是在形式上依賴內存分配而成的,所以必須在使用前預先請求空間
這樣長長的一段話,我只看到程式使用前要預先請求空間,如此一來才有位置放變數等等..

【資料結構】-時間複雜度

說實在話,這議題真的很抽象,我困擾了滿久的(我努力讓自己懂反覆看了4-5次,還是不是很清楚)。
摘一下重點: