freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

unit07動態(tài)分配內存空間(參考版)

2025-05-14 19:35本頁面
  

【正文】 【 例 】 雙向鏈表類模板和結點類模板
。 //搜索數據與定值相同的結點 void MakeEmpty()。 //打印鏈表 int Length()。 //鏈尾插入 DblNodeT* Remove(DblNodeT* p)。 void Insert(const T amp。 public: DblList()。 rlink=NULL。} templatetypename T DblNodeT::DblNode(T data){ info=data。}。}。 //一般結點 DblNode()。 //數據域 DblNodeT *llink,*rlink。 return 0。 (P1)。ih。 ()。 coutlist1長度: ()endl。 delete P1。 P1=(j)。 cout請輸入一個要求刪除的學生學號 endl。 例 學生檔案的管理 coutlist1長度: ()endl。 (P1)。 (P1)。ih。,18,重慶路 95號 ,78,95,81,88),}。,18,上海路 37號 ,78,95,81,88), student(6004219,趙昀 ,39。,19,天津路 64號 ,88,75,91,68), student(6004118,劉蓓 ,39。,19,北京路 58號 ,80,85,90,78), student(6004121,關雨 ,39。 student n[h]={ student(6004327,張菲 ,39。 Nodestudent * P1。 例 學生檔案的管理 int main(){ const int h=4。 } coutendl。 while(tempP!=NULL){ tempP()。} }。\t‘ math39。\t39。\t39。\t39。sex39。name39。} void show(){coutid39。 bool operator(student ele){return id。\039。 float eng, phy, math, electron。 int age。string name。 return 0。 (P1)。i16。 ()。 coutlist1長度: ()endl。 delete P1。 P1=(j)。 例 單鏈表類型模板主函數 cout請輸入一個要求刪除的整數 endl。 coutlist1長度: ()endl。 (P1)。 (P1)。i16。i++)cina[i]。 for(i=0。 int a[16],i,j。 } //本函數所用方法可省一個工作指針,與 InsertOrder比較 例 單鏈表類型模板 例 單鏈表類型模板主函數 void main(){ Nodeint * P1。 if(tempPlink==tail) tail=tempP。amp。} 例 單鏈表類型模板 鏈表類成員函數: templatetypename T NodeT* ListT::DeleteNode(NodeT* p){ NodeT* tempP=head。} templatetypename T NodeT* ListT::CreatNode(T data){ NodeT*tempP=new NodeT(data)。 } tempQInsertAfter(p)。 //找第一個比插入結點大的結點,由 tempP指向 tempQ=tempP。} 鏈表類成員函數: templatetypename T void ListT::InsertOrder(NodeT *p){ NodeT *tempP=headlink,*tempQ=head。 taillink=p。 if(tail==head) tail=p。} templatetypename Tvoid ListT::InsertFront(NodeT *p){ plink=headlink。 tempP=tempPlink。 while(tempP!=NULL){ couttempPinfo39。} return count。 while(tempP!=NULL){ tempP=tempPlink。 //搜索成功返回該結點地址,不成功返回 NULL } templatetypename Tint ListT::Length(){ //鏈表長度 NodeT* tempP=headlink。tempPinfo!=data) tempP=tempPlink。 while(tempP!=NULLamp。 } //刪除 (釋放 )脫離下來的結點 tail=head。 headlink=tempPlink。 } templatetypename Tvoid ListT::MakeEmpty(){//清空鏈表 NodeT *tempP。 } templatetypename TListT::~List(){ MakeEmpty()。 return tempP。 if(link==NULL) tempP=NULL。 link=p。 link=NULL。} template typename T NodeT::Node(const T amp。return 0。 student s4=s1。 return *this。} else pName=NULL。 delete[] pName。 student::operator=(student amp。 delete[] pName。 if(pName) pName[0]=39。 coutpNameendl。 if(){ if(pName=new char[strlen()+1]) strcpy(pName,)。 } 例 實現深復制 復制構造函數: student::student(student amp。 if(pName=new char[strlen(pname)+1]) strcpy(pName,pname)。 cout默認“ endl。} 例 實現深復制 默認構造函數: student::student(){ coutConstructor。 delete []pc2。 //動態(tài)建立數組 , 不能初始化 , 調用 n次默認構造函數 …… delete pc。 cinn。 //調用三參數構造函數 pc1=new CGoods()。 CGoods *pc,*pc1,*pc2。 【 例 】 演示自由存儲區(qū)對象分配和釋放。 } ~CGoods(){ cout調用析構函數 endl。 Price=price。 Name=name。}。 float Total value。 int Amount。 //注意撤銷次序,先列后行,與設置相反 delete[] data。im。 return 0。 //初始化數組元素 display(data)。jn。im。 return 1。j++){ data[j] = new double[n]。 } for(j=0。 //設置行 if ((data ) == 0){ cout Could not allocate. Bye ...。 int i,j。 //行數 int n=6。采用 指針數組方式 來完成二維數組的動態(tài)創(chuàng)建。//釋放 pc所指向的 n個字符的內存空間 return 0。 coutpcendl。 //在運行時確定,可輸入 25 pc=new char[n]。 cout請輸入動態(tài)數組的元素個數 endl。 第七章 動態(tài)內存分配與數據結構 完 謝謝! 內存的分配與釋放 【 例 】 【 例 】 動態(tài)數組的建立與撤銷 include iostream include cstring using namespace std; int main(){ int n。} 【 例 】 排序二叉樹查找函數。 else temp=templchild。 while(temp!=NULL){ if(tempinfo==data)return temp。 排序二叉樹 (選讀) 排序二叉樹(選讀) templatetypenameTNodeT* BinaryTreeT::Find(const T amp。 3. 如 ai小于根結點,則去左子樹,否則去右子樹,按此法查找,直到成為空樹,則安放此位置。要 生成二叉排序樹 的過程為: 1. 令 a0為二叉樹的根結點。 排序二叉樹 (選讀) 二叉排序樹用中序遍歷就可以得到由小到大的有序序列,如圖 { 8, 10, 11, 12,15, 16, 18, 22, 24, 26, 29}。 其定義也是遞歸的 。再由先序 D G知,D為 B的右子樹根結點,由中序 D G知 G為 D的右子樹。由先序中的 B C E F D G知 B為左子樹根結點,由中序中的 E C F B D G知 E C F為其左子樹,而 DG為右子樹??梢宰C明已知先序和中序訪問次序可以唯一確定一棵二叉樹。 A B C D E F G H I J K 圖 例 按同樣 方法推出 A的右子樹。} //后序遍歷,公有函數為接口 }。} //中序遍歷,公有函數為接口 void PreOrder(){PreOrder(root)。} //析構函數 void Creat(T* data,int n)。 //刪除樹 二叉樹的遍歷(選讀) public: BinaryTree(){root=NULL。b)。 //后序遍歷 void Insert(const T amp。 //中序遍歷 void PreOrder(NodeT *Current)。 templatetypename Tclass BinaryTree{ NodeT *root。 為什么 ? 請讀者自己思考 。 二叉樹的遍歷(選讀) 【 例 】 二叉樹類模板 ( 其中二叉樹生成借用二叉排序樹 ,見下節(jié) ) 。 圖 二叉樹遍歷 中序遍歷結果為 D B G E A F H C。 所謂 “ 訪問 ” 指對結點施行某些操作 , 但不破壞它原來的數據結構 。} //設置右指針 friend class BinaryTreeT。} //取得右子樹 void setleft(NodeT *left){lchild=left。} //修改結點數據 NodeT *Getleft(){return lchild。} //取得結點數據 void setinfo(const T amp。 rchild=right。} Node(T data,NodeT *left=NULL , NodeT *right=NULL){ info=data。 public: Node(){ lchild=NULL。 templatetypename Tclass Node{ NodeT *lchild,*rchild。每個結點有三個域:數據域、左孩子指針和右孩子指針,見圖 。 圖 5種不同的三結點二叉樹 二叉樹的概念(選讀) 滿二叉樹和完全二叉樹: 分別如圖 ,完全二叉樹已有的結點排序與滿二叉樹相同。 樹的概念: 二叉樹的概念(選讀) 【 例 】 畫出有三個結點的所有二叉樹 。 二叉樹的特點是:每個結點最多兩個孩子 , 并且子樹有左右之分 。二叉樹是結點的一個有限集合 , 該集合或為空 , 或是由一個根結點及兩棵樹分別稱為左子樹和右子樹的 ( 注意有左右之分 ) 互不相交的二叉樹組成
點擊復制文檔內容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1