c 繼承和派生 鍊錶綜合例題

2021-10-05 21:32:40 字數 2842 閱讀 5347

設計單鏈錶類,並基於單鏈錶類實現棧類和佇列類:

(1)設計學生資訊類studentrecord,要求包含公有資料成員:string stunameint stuno,設計用於輸出學生資訊的公有成員函式:void print,輸出格式為:name: stuname, number: stuno

(2)設計學生鍊錶的結點類studentnode,要求包含公有資料成員:studentrecord datastudentnode *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 子類擁有父類的...