1、本程序由用戶輸入運(yùn)行命令和數(shù)據(jù),運(yùn)行結(jié)果顯示在其后。
2、程序執(zhí)行的命令包括:
1)創(chuàng)建一個(gè)鏈表;2)執(zhí)行鏈表的逆置;3)結(jié)束。
2、測(cè)試數(shù)據(jù)
鏈表:abc123
1、鏈表的抽象數(shù)據(jù)類(lèi)型定義為:
ADTNumber{
數(shù)據(jù)對(duì)象:D={ai|ai∈(0,1,…,9),i=0,1,2,…,n,n≥0}
數(shù)據(jù)關(guān)系:R={<ai-1,ai>|ai-1,ai∈D,i=1,2,…,n}
基本操作:
CreateList(&L)
操作結(jié)果:創(chuàng)建一個(gè)鏈表L。
PrintList(L)
初始條件:鏈表L已存在。
操作結(jié)果:在屏幕上輸出鏈表的值。
InverseList(L)
初始條件:鏈表L已存在。
操作結(jié)果:將鏈表逆置。
DestroyList(&L)
初始條件:鏈表L已存在。
操作結(jié)果:銷(xiāo)毀鏈表L。
}ADTNumber
2、本程序包含五個(gè)模塊:
(1)主程序模塊:
int main(){
定義變量;
接受命令;
處理命令;
退出(return 0);
}
(2)創(chuàng)建鏈表模塊--產(chǎn)生一個(gè)鏈表;
(3)輸出鏈表模塊--把鏈表輸出;
(4)鏈表逆置模塊--將鏈表逆置;
(5)銷(xiāo)毀鏈表模塊--程序結(jié)束后釋放鏈表開(kāi)辟的空間。
各模塊之間的調(diào)用關(guān)系如下:
主程序模塊 創(chuàng)建鏈表模塊
創(chuàng)建鏈表模塊 輸出鏈表模塊 鏈表逆置模塊
輸出鏈表模塊 創(chuàng)建鏈表模塊 銷(xiāo)毀鏈表模塊
#include<iostream>
using namespace std;
struct Number //鏈表的類(lèi)型
{
char data; //鏈表當(dāng)前結(jié)點(diǎn)的值
struct Number *next; //鏈表當(dāng)前結(jié)點(diǎn)指向下一結(jié)點(diǎn)的指針
}*number;
void CreateList(Number *&L) //創(chuàng)建鏈表
{
Number *s,*r; //定義兩個(gè)鏈表類(lèi)型的臨時(shí)指針
char x; //定義一個(gè)臨時(shí)字符變量
L=(Number *)malloc(sizeof(Number)); //為頭結(jié)點(diǎn)開(kāi)辟空間
L->next=NULL; //此時(shí)頭結(jié)點(diǎn)的后繼指針和前驅(qū)指針賦值為空
r=L; //是r指針指向頭結(jié)點(diǎn)
x=getchar(); //用x接受一個(gè)從鍵盤(pán)輸入的字符
while(x!='\n') //控制當(dāng)輸入回車(chē)鍵時(shí)結(jié)束
{
s=(Number *)malloc(sizeof(Number)); //開(kāi)辟下一結(jié)點(diǎn)的空間
s->data=x;
r->next=s; //r的后繼指針指向s
r=s; //是s指向r
x=getchar(); //用x接受一個(gè)從鍵盤(pán)輸入的字符
}
r->next=NULL; //當(dāng)創(chuàng)建結(jié)束時(shí),r的后繼指針為空
}
void PrintList(Number *L) //輸出鏈表
{
Number *p=L->next; //定義一個(gè)臨時(shí)指針并指向鏈表的第一個(gè)結(jié)點(diǎn)
while(p!=NULL) //判斷結(jié)點(diǎn)是否為空,空就結(jié)束
{
cout<<p->data; //輸出結(jié)點(diǎn)的值
p=p->next; //指向下一個(gè)結(jié)點(diǎn)
}
cout<<endl; //換行
}
void InverseList(Number *L) //鏈表的逆置
{
Number *p=L->next,*q=L->next;
q=q->next;
p->next=NULL;
p=q;
while(p!=NULL)
{
q=q->next;
p->next=L->next;
L->next=p;
p=q;
}
}
void DestroyList(Number *&L) //銷(xiāo)毀鏈表
{
Number *p=L,*q=p->next;
while(q!=NULL)
{
free(p); //釋放p的空間
p=q;
q=p->next;
}
cout<<"釋放鏈表"<<endl;
}
int main()
{
cout<<"請(qǐng)輸入一個(gè)鏈表:";
CreateList(number); //調(diào)用創(chuàng)建鏈表
cout<<"********************************************************************************";
cout<<"輸入的鏈表為:"<<endl;
PrintList(number); //調(diào)用輸出鏈表
InverseList(number); //調(diào)用逆置鏈表
cout<<"此鏈表的逆置為:"<<endl;
PrintList(number); //調(diào)用輸出鏈表
cout<<"********************************************************************************";
DestroyList(number); //調(diào)用銷(xiāo)毀鏈表的函數(shù)
return 0;
}
兩者的根本區(qū)別就是基本可以移動(dòng)的與基本不可以移動(dòng)的,這就是軟裝與硬裝的概念。 傳統(tǒng)的硬裝是在作結(jié)構(gòu),主要是對(duì)建筑內(nèi)部空間的六大界面,按照一定的設(shè)...
職業(yè)發(fā)展需求分析應(yīng)該怎么寫(xiě)呢?
不想當(dāng)將軍的兵不是好兵,即使當(dāng)不了將軍也要能夠從將軍的角度去思考和解決問(wèn)題,這樣才能做一個(gè)更好的有可能成為將軍的士兵. 成為一名優(yōu)秀的人力資源經(jīng)理是我的職業(yè)發(fā)展目標(biāo).我想做的是改善目前混亂的管...
網(wǎng)絡(luò)工程需求分析包括哪些內(nèi)容
網(wǎng)絡(luò)規(guī)劃與需求分析需求分析從字面上的意思來(lái)理解就是找出"需"和"求"的關(guān)系,從當(dāng)前業(yè)務(wù)中找出最需要重視的方面,從已經(jīng)運(yùn)行的網(wǎng)絡(luò)中找出最需要改進(jìn)的地方,滿足客戶提...
1、在創(chuàng)建長(zhǎng)整數(shù)時(shí),沒(méi)有使用getchar()來(lái)接受字符,而用C++中的cin>>來(lái)輸入,這樣使得每一次輸入之后都要按回車(chē)鍵,而且在輸入結(jié)束時(shí)控制也不方便,使用getchar()函數(shù)解決了這一問(wèn)題。
2、首先,遇到的問(wèn)題就是if條件中的"= ="中少了一個(gè)"="導(dǎo)致編譯正確,但是一運(yùn)行就錯(cuò)誤,這個(gè)問(wèn)題不該錯(cuò)的,以后一定重視每一個(gè)細(xì)節(jié)。還有就是鏈表的使用過(guò)程中,指針太多,一會(huì)兒指向這個(gè),一會(huì)兒又指向那個(gè),如果思路不清楚的話,很容易弄暈的;有時(shí)候一個(gè)指針指向空的時(shí)候根本就不知道,編譯沒(méi)錯(cuò)誤,檢查不出來(lái),一運(yùn)行就不正確,有時(shí)候運(yùn)行正確了,但是結(jié)果卻不正確,這還好點(diǎn),有時(shí)候指針指向空了,運(yùn)行就彈出錯(cuò)誤要終止程序。經(jīng)過(guò)一步一步的測(cè)試,一步一步的運(yùn)行,花了不少時(shí)間終于弄出來(lái)了。
3、在銷(xiāo)毀鏈表的時(shí)候,也遇到過(guò)一個(gè)問(wèn)題,現(xiàn)在還沒(méi)弄明白是為什么。在銷(xiāo)毀鏈表的函數(shù)中,如果參數(shù)接受兩個(gè)鏈表來(lái)銷(xiāo)毀的話,如:void DestroyList(Number *&L1,Number *&L2),運(yùn)行會(huì)出錯(cuò),或許是我寫(xiě)的代碼不正確;但是,當(dāng)用void DestroyList(Number *&L)來(lái)一個(gè)鏈表一個(gè)鏈表的銷(xiāo)毀就沒(méi)問(wèn)題。
格式:docx
大?。?span id="o0eecca" class="single-tag-height">18KB
頁(yè)數(shù): 未知
評(píng)分: 3
再談需求分析——項(xiàng)目需求分析是一個(gè)項(xiàng)目的開(kāi)端,也是項(xiàng)目建設(shè)的基石。在以往建設(shè)失敗的項(xiàng)目中,80%是由于需求分析的不明確而造成的。因此一個(gè)項(xiàng)目成功的關(guān)鍵因素之一,就是對(duì)需求分析的把握程度。 在原則上,需求階段監(jiān)理應(yīng)尊重承建方的項(xiàng)目管理和項(xiàng)目分析能...
格式:pdf
大?。?span id="geka020" class="single-tag-height">18KB
頁(yè)數(shù): 12頁(yè)
評(píng)分: 4.6
中學(xué)數(shù)字化校園建設(shè)共享數(shù)據(jù)中心平臺(tái)委托開(kāi)發(fā)項(xiàng)目需求 1項(xiàng)目背景介紹 各直屬校在先期進(jìn)行數(shù)字化校園建設(shè)的過(guò)程, 已經(jīng)建設(shè)了一些應(yīng)用系統(tǒng)。 但 是,在建設(shè)初期, 由于缺乏對(duì)數(shù)據(jù)資源的統(tǒng)籌與統(tǒng)一規(guī)劃, 各應(yīng)用系統(tǒng)之間數(shù)據(jù) 結(jié)構(gòu)不統(tǒng)一,使得數(shù)據(jù)不一致、不準(zhǔn)確、不完整,無(wú)法形成統(tǒng)一的信息化標(biāo)準(zhǔn)體 系,最終造成了部門(mén)之間一個(gè)個(gè)信息孤島的存在。然而,這種情況的持續(xù)存在, 既不利于各應(yīng)用系統(tǒng)之間的數(shù)據(jù)互通共享, 更加大了部門(mén)之間重復(fù)維護(hù)系統(tǒng)的工 作量,嚴(yán)重影響了學(xué)校的教育教學(xué)工作效率。 為此,在校內(nèi)建設(shè)統(tǒng)一的信息化標(biāo) 準(zhǔn)體系,構(gòu)筑統(tǒng)一的數(shù)據(jù)中心共享平臺(tái),已迫在眉睫。 2 項(xiàng)目建設(shè)目標(biāo)和原則 2.1項(xiàng)目建設(shè)總體目標(biāo) 采取 SOA(面向服務(wù)的體系結(jié)構(gòu) )的設(shè)計(jì)架構(gòu)方式, 基于 ESB(企業(yè)服務(wù)總線) 的技術(shù)框架,通過(guò)在校內(nèi)建立統(tǒng)一的共享數(shù)據(jù)中心平臺(tái), 建設(shè)統(tǒng)一的信息化標(biāo)準(zhǔn) 體系,實(shí)現(xiàn)各應(yīng)用系統(tǒng)(包括現(xiàn)有系統(tǒng)和