設計單鏈錶類,並基於單鏈錶類實現棧類和佇列類:
(1)設計學生資訊類studentrecord,要求包含公有資料成員:string stuname
和int stuno
,設計用於輸出學生資訊的公有成員函式:void print
,輸出格式為:name: stuname, number: stuno
(2)設計學生鍊錶的結點類studentnode,要求包含公有資料成員:studentrecord data
和studentnode *next
(3)設計學生鍊錶類linkedlist,要求定義頭插入、頭刪除、尾插入、遍歷等公有成員函式
(4)由linkedlist派生linkedstack類,基於單鏈錶類的功能實現壓棧和出棧的成員函式:
void push(studentrecord record)
和bool pop(studentrecord &record)
(5)由linkedlist派生linkedqueue類,基於單鏈錶類的功能實現入隊和出隊的成員函式:
void enqueue(studentrecord record)
和bool dequeue(studentrecord &record)
。
在main函式中:
定義乙個linkedqueue類的物件queue和乙個linkedstack類的物件stack,並根據使用者的輸入分別對queue和stack作出相應的操作。若為"push",則壓棧;若為"enqueue",則入隊;若為"pop",則出棧;若為"dequeue",則出隊;若為"exit",則退出;若為其它,則給出提示資訊"input error!
"。入棧和入隊時,輸入學生姓名和學號。出棧和出隊時,若非空,則輸出被刪除的學生資訊;若棧空,則輸出「stack is empty!
";若隊空,則輸出"queue is empty!
"。
輸入操作名;學生姓名,學號。
輸出刪除的資訊;提示資訊。
樣例輸入
push
zhangsan 200905
push
lisi 200906
enqueue
wangwu 200907
popexit
exit
樣例輸出name: lisi, number: 200906
input error!
#include
#include
using
namespace std;
class
studentrecord
//輸出函式
void
print()
studentrecord()
~studentrecord()
};class
studentnode
;class
linkedlist
~linkedlist()
//插入結點 pos==0頭插 pos==-1 尾插
void
insertlist
(studentnode *node,
int pos =0)
else
if(pos ==-1
) p-
>next = q;
q->next =
null;}
}//刪除結點 pos==0頭刪 pos==-1 尾刪
void
deletelist
(int pos =0)
else
if(pos ==-1
) q-
>next =
null;}
}};//棧
class
linkedstack
:public linkedlist
//出棧
bool
pop(studentrecord& record)
else
}linkedstack()
~linkedstack()
};//佇列
class
linkedqueue
:public linkedlist
bool
dequeue
(studentrecord& record)
else
}linkedqueue()
~linkedqueue()
};intmain()
else
if(style ==
"pop")}
else
if(style ==
"enqueue"
)else
if(style ==
"dequeue")}
else
if(style ==
"exit"
)else
cin >> style;
}}
總結可以引入
int pos
判斷結點位置,預設pos==0
為頭,pos==-1
為尾,其他情況為中間。
一定要注意鍊錶構造的棧或隊列為空的情況,判斷是否為空,再做操作。
c 繼承和派生
通常子類不加修飾的延續父類的特徵,我們把它叫做繼承 而子類在延續父類特徵的基礎上又新增自己的新特徵,叫做派生。擁有乙個基類的繼承是單一繼承,擁有多個基類的繼承是多重繼承。class 派生類名 派生型別 基類名 注 括號內是派生類自己的成員和成員函式。乙個類的私有成員只能被它的成員函式和友員訪問,不能...
C 繼承和派生
在c 語言中,乙個 派生類可以從乙個 基類派生,也可以從多個基類派生。從乙個基類派生的繼承稱為單繼承 從多個基類派生的繼承稱為 多繼承。派生類的定義格式 單繼承的定義格式如下 1 2 3 4 class 派生類名 繼承方式 基類名 public 表示公有繼承 private 表示私有繼承 prote...
C 繼承和派生
1 繼承概念 1 繼承是類之間定義的一種重要關係 2 基本語法 class child public parent1,public parent2 3 parent稱基類 父類 child稱派生類 子類 4 繼承方式 public,private,protected.5 重要說明 a 子類擁有父類的...