復習-第六章引例輸入5個學生信息要求將這些按平均分_第1頁
復習-第六章引例輸入5個學生信息要求將這些按平均分_第2頁
復習-第六章引例輸入5個學生信息要求將這些按平均分_第3頁
復習-第六章引例輸入5個學生信息要求將這些按平均分_第4頁
復習-第六章引例輸入5個學生信息要求將這些按平均分_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

[引例輸入5個學生的信息,要求將這些學生按平均分方法三:使用結構體數(shù)組structstruct{charname[20];charno[7];int}結構 ,需要從以下幾方面加以考慮structstruct結構類型標識{結構成員┆結構成員如 一個日期結構類型date,含三個整型成員structstruct{intmonth;intday;intyear;

{charcharsex;intage;date一個結構類型的變structan結個結構類型的成員.p1,先類型再定義變{{charcharsex;intage;structdate}p1,{charname[15];charsex; structdate}p1,類型的同時定義變 無類型名變初始化struct說明:對結構變量初始化時將其各說明:對結構變量初始化時將其各 charsex; }p說明:結構數(shù)組初始化時按數(shù)組初始化說明:結構數(shù)組初始化時按數(shù)組初始化原則所有元素組織在一對花括號中,元素間逗號分隔;同時每個元素又按結構 {charname[15];charsex; }p[10]={{"FangMin",'F',24},{"Fang"Fang"FangMin""FangHua"1 結構體變量中成員的方式為結構變量名.成員 2、通過指向結構的指針引其成員(*(*指向結構的指針).成員指向結構的指針->成員如,假設有定p1,*p=&p1;則可如下結構成strcpystrcpy(,"Fangp->birthday.month=因為birhday是結構類型的一個成員,所以通過結構指針p該成員的方式為p-irhday;又因為birhdy這個成員本身所屬類型又是另一個結構類型de,所以其成員month,應使用:p-使用注意 p;則以下表達皆不允許如果成員本身又屬一個結構體類型,則要用若干個成員運算符,逐級地找到最低一級成員。只能對最低級的成員進行#include"iostream.h"#defineN5struct{charname[20];charno[7];doubleChinese,English,math,void{intStudents[N],t;}{}{cout<<s[i].name<<""<<s[i].no<<""cout<<""<<s[i].English<<""<<s[i].math<<"}}需一個如下結構類型struct{charint}然后定義一個長度為3#include#include#defineNstruct

思考:若定義為char*name,程序又將如何改變 charint

將所有候選人的得票數(shù)初始化為void charp[3]={{"zhao",0},{"qian",0},{"sun",0}};int }

strcmp(pname,p[j].name)==0}結構的應用——鏈鏈表是一種常見的重要的數(shù)據(jù)結構,是動態(tài)地進行分結點:由需要處理的實際數(shù)據(jù)和下一結點的 ? 數(shù)據(jù)域? 數(shù)據(jù)域指針DABC

struct{chardata;//datastructnode

structnodestruct{intnum;floatscore;structstudent*next在鏈表中一個新的結點①使用mallocstructnode*pp尚沒明確的指向單元p=(structnode 關于函數(shù)malloc其作用是在內(nèi)存的動 區(qū)中分配一個長度sizeof(nodep=newp=new delete p-﹥data p=new//或p=(structnode*)malloc(sizeof(structq=new

pp域,且其類型為整型的單鏈表。 ③把newnode所指向的結點到鏈表中2、3步共nnext域置空(NULL#include"iostream.h"structnode{intstructnodestructnode*create(intn{structnode*head=NULL;structnode*tail,*newnode;intx;for(inti=0;i<n;{newnode=newnode

為newnode

tail=}

newnode}voidmain({structnode*head;intn;cout<<"請輸入初始鏈表結點數(shù)head=} 地址,所以只要知該鏈表的頭指針,即可依次對每個結點進 結點的數(shù)據(jù)域,直到p的值為NULLvoidprint(structnode{structnode{p=p-}}

2 count(structnode{structnode*p=head;intn=0;while(p!={p=p-}}【例6.6】在鏈表中按序號查找第i鏈表的鏈進行查找。僅當j==i并且p!=NULL時查找成功,否則查voidsearch(structnode*head, intstructnode*p=head;cout<<"illegal while(j!=i&&p!={p=p- }if(j==i&&p!=NULL}}

cout<<"illegalindex\n"; 假定有一個指針behind指向鏈表中的某個結點, 結點

如果有一個指針front指向behind的前驅(qū),則僅需編寫下面的兩個語句,即可實 newnode- 如果沒有behind指針 操作仍然可以完成 head=newnode;

6767>next=newnod;newnode->next=NULL

8877structnode*insert(node*head,int{structnodenewnode=new head=;en- {while(behind!=NULL&&x>behind->data)//找

>ne}f(biedo h h;

; elsei n n; ;}

b >ne=nwnode}return

;}刪除鏈表中的某個結點,是把被刪除結點的后繼結點的地址,賦給其前趨結點的指針域或表頭指針head,無后繼結點時,則賦deletep;q->next=p->nextq->next=p->nextdeletestructnode*delnode(node*head,int{structnode p= cout<<"Thelistiswhilep!=NULL&&p->data!= {q=p;p=p->next; {head=p->next;deletep;else {q->next=p->next;deletep; cout<<x<<"dosenotexistinthe}return}

an-an-00 在帶表頭結點的單鏈表最前 新結^^

^^newnode->next=p->link;p->next=newnode; ^^

q=p-^p->next=q-^delete應用分析根據(jù)題意,建立該鏈表的過程是不斷向表頭新結點的過#include"iostream.h"structnode{intstructno

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論