06從一個例項看資料抽象與封裝
用C的方式實現棧
struct Link
{
int data;
struct Link* next;
};
struct Stack
{
int size;
struct Link* head;
};
void StackInit(struct Stack* stack);
void StackPush(struct Stack* stack, int data);
int StackPop(struct Stack* stack, int* data); //返回型別為pop是否成功
int StackEmpty(struct Stack* stack);
void StackCleanup(struct Stack* stack);
用C++資料抽象的方式實現棧
- 資料封裝,能保護內部資料不遭受外部破壞
- 使得函式和資料成員更加緊密
class Stack
{
private:
int size_;
Link* head_;
struct Link
{
int data_;
Link* next_;
Link(int data, Link* next) : data_(data), next_(next);
}
public:
Stack():head_(NULL), size_(0)
{}
~Stack()
{
Link* tmp;
while(head_)
{
tmp = head_;
head_ = head_->next_;
delete tmp;
}
}
void Push(const int data)
{
Link* tmp = new Link(data, head_);
head_ = tmp;
++size_;
}
bool Empty()
{
return (size_ == 0);
}
bool Pop(int& data)
{
if(Empty())
{
return false;
}
Link* tmp = head_;
data = head_->data_;
head_ = head_->next_;
delete tmp;
--size_;
return true;
}
};
相關文章
- js從陣列隨機取一個資料程式碼例項JS陣列隨機
- 一個可用與資料庫SQL封裝的指令碼語言--TCL資料庫SQL封裝指令碼
- RAC資料庫啟用、禁用一個例項資料庫
- 抽象結合例項 Employee抽象
- 資料從Oracle向Mysql資料遷移例項OracleMySql
- oracle資料庫與oracle例項Oracle資料庫
- 連線RAC資料庫中單個例項(一)資料庫
- 一臺MySQL資料庫啟動多個例項MySql資料庫
- 為同一個資料庫建立新的例項資料庫
- javascript獲取元素封裝程式碼例項JavaScript封裝
- 原生ajax()函式封裝程式碼例項函式封裝
- 從例項看oracle的索引監控與無效索引維護Oracle索引
- jafka安裝配置和啟動一個自帶例項和手寫一個例項
- PHP封裝的一個單例模式Mysql操作類PHP封裝單例模式MySql
- Dart - 抽象類的例項化Dart抽象
- java多型抽象類例項Java多型抽象
- 一個資料庫最多可有多少個例項,多少個日誌組資料庫
- 資料庫正規化與例項資料庫
- 原生javascript對ajax的封裝程式碼例項JavaScript封裝
- javascript字串操作程式碼封裝程式碼例項JavaScript字串封裝
- 方法返回資料統一封裝封裝
- 編寫自己的程式碼庫(javascript常用例項的實現與封裝)JavaScript封裝
- JDBC連線自定義sqlserver資料庫例項名(多個例項)JDBCSQLServer資料庫
- Memcached安裝與使用例項
- JavaScript封裝的id選擇器程式碼例項JavaScript封裝
- SQLAlchemy Join Query 得到的不同資料行相同資料是同一個例項SQL
- 單例模式 - 只有一個例項單例模式
- 從連結串列出發封裝一個自己的工具封裝
- echarts常用功能封裝|抽象為mixinEcharts封裝抽象
- Struts2筆記06 封裝獲取表單資料方式筆記封裝
- 【轉】新建例項開啟已有的資料庫 — 資料庫與例項的區分測試資料庫
- 例項,資料庫,資料字典與資料庫建立的關係資料庫
- 19C 單例項資料庫安裝單例資料庫
- ORACLE 單例項完全解除安裝資料庫Oracle單例資料庫
- 封裝動態庫dll與靜態庫lib(原理及簡單例項)封裝單例
- 編寫自己的程式碼庫(javascript常用例項的實現與封裝–續)JavaScript封裝
- 使用元件封裝資料庫操作(一) (轉)元件封裝資料庫
- js對cookie操作一些常用功能的封裝程式碼例項JSCookie封裝