表、棧和佇列是最簡單和最基本的三種資料結構——《資料結構與演算法分析—— c 語言描述》
應用範疇:
i. 多項式 adt
i. 基數排序(多趟桶式排序)
**實現:
i. 多重表
鍊錶的游標實現
**實現:
棧又叫做 lifo(後進先出)表——《資料結構與演算法分析—— c 語言描述》
應用範疇:
i. 平衡符號
i. 字尾表示式
有中綴表示式 s1 : ((2 + 3)* 8 + 5 + 3)* 6
總能轉換成字尾表示式 s2 : 2 3 + 8 * 5 + 3 + 6 *
編寫程式計算字尾表示式 s2 的值,**實現:
#include #includeview code#include
#include
#include
using
namespace
std;
class
calculatepostfix
else
sk.push(atoi(s.c_str()));
}return
sk.top();
}private
:
bool isoperator(string c) const
int calculate(const
string &s, const
int lhs, const
int rhs) const
stack
sk;};int
main()
i. 中綴到字尾的轉換
有中綴表示式 s1 : ((2 + 3)* 8 + 5 + 3)* 6
編寫程式轉換成字尾表示式,**實現:
#include #includeview code#include
#include
using
namespace
std;
class
infix2postfix
switch
(isoperator(c))
}while (!sk.empty())
return
output;
}private
:
void popwhilelow(const
intop)
if (sk.top() != "("
)
}void
popwhilenoleftbracket()
sk.pop();
}int isoperator(const
string &s) const
stack
sk;string
output;
};int
main()
i. 函式呼叫
表 棧和佇列
形如 a1,a2,a3 an 的表,這個表的大小為 n,而大小為 0的表稱為空表,非空表中,ai 1 後繼ai ai 1 前驅ai 表adt 的相關操有 printlist 列印表中的元素 createempty 建立乙個空表 find 返回關鍵字首次出現的位置 insert 和delete 從表的...
表,棧和佇列
對錶的所有操作都可以使用陣列來實現。雖然陣列是靜態分配的,但是內部儲存陣列的ve ctor 類允許在需要時的時候將陣列的大小增加一倍。這解決了使用陣列是需要對錶的大小的最大值進行估計的問題。陣列實現使得pr intl ist 以線性時間執行,而fi ndkt h 則花費常數時間。然而,插入和刪除的花...
鍊錶,棧和佇列
1.建立鍊錶 package com.zzw.鍊錶 非常基本的單項鍊表 author john public class node 新增乙個結點 node end new node d node n this while n.next null n.next end 刪除單向鍊錶中的結點 node ...