資料結構演算法題整理3

2021-09-29 08:02:18 字數 1700 閱讀 9212

1.將兩個順序表合併,同時要求新的順序表沒有重複資料

void

mlist

(list l1,list l2,list &l)

else

if(a[i]

==b[j]

)//插入l,並刪除重複元素

else

}while

(i<=l1.len)

while

(j<=l2.len)

}

2.用非遞迴演算法交換二叉樹的左右子樹

演算法的基本思想為,先把樹根入棧,判斷左右子樹,

如果不為空則交換;再將交換的左右孩子分別入棧,

重複整個過程,直到棧空位置

,再將交換的左右,演算法的時間複雜度為o(n)

void

exchange

(bitree *tr)

if(t->lchild)

push

(s,t->lchild);if

(t->rchild)

push

(s,t->rchild);}

while(!

stackempty

(s))

;}

3.逆序單鏈表中的資料

void

reverse

(node head)

}

4.統計二叉樹的葉子結點個數和樹的高度

int

countleaf

(bitree bt)

int

countheight

(bitree bt)

return height;

}

#define status int 

#define true 1

#define flase 0

status sei

(elemtype a,

int*n,elemtype x)

if(l<=h)

else

return s;

}

6.統計二叉樹非葉子結點個數的層次遍歷演算法

typedef

struct bitreenode

bitreenode,

*bitree;

intlorder

(bitree bt)

if(que[front]

->rchild!=

null)}

return count;

}

7.將順序表轉存為帶頭結點的單迴圈鍊錶

#define max 100

typedef

struct slist

slist;

typedef

struct node

listnode,

*linklist;

void

rever

(slist l,linklist *l2)

}

8.刪除不帶頭結點的雙迴圈鍊錶中p指向的某個結點

void

del(linklist l)

php演算法題(資料結構)

單鏈表的操作 public function index 單向鍊錶節點類 class node 單鏈表 class singlelink 插入乙個節點 public function addnode node node next current next current next node 獲取鍊錶...

資料結構整理

常見資料結構 陣列 一對一 棧佇列 鍊錶樹 一對多 圖 多對多 堆雜湊 資料結構是指相互之間存在著一種或多種關係的資料元素的集合和該集合中資料元素之間的關係組成 常用的資料結構有 陣列,棧,鍊錶,佇列,樹,圖,堆,雜湊表等,一.陣列 優點 1 按照索引查詢元素速度快 2 按照索引遍歷陣列方便 缺點 ...

資料結構與演算法 3

非遞迴 o n logn 示例 mergesort 求陣列最小和問題 求陣列中 每個數左側所有比它小的數的和 的和 求降序對問題 陣列中每個數與其右側比它小的數組成的二元組 上題反過來即可 partition過程 給定乙個陣列arr,和乙個整數num,請把小於num的數放在陣列的左邊,大於num的數...