久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

實驗總結報告-線性表

時間:2019-05-12 02:41:03下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《實驗總結報告-線性表》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《實驗總結報告-線性表》。

第一篇:實驗總結報告-線性表

實驗總結報告—棧和隊列

學號:

姓名: 時間:

一、目的 1.做實驗的目的

加深對線性表的理解,學會定義線性表的存儲結構,掌握線性表的基本操作。

2.撰寫實驗報告的目的

對本次實驗情況進行總結,加強對實驗內容的理解,對實驗過程有一個系統的認識,從中獲得本次試驗的經驗,并對實驗結果進行適當的分析,加深對棧和隊列的理解和認識。

二、內容

1.說明實驗次數及實驗內容 本次實驗用一次實驗課時完成 實驗內容:

節點定義:

typedef struct node{

int idx;int age;struct node *next;}Node,*List;本次實驗的對象的存儲內容包括ID和AGE,所以定義了如上的結構體,idx用于存儲ID號,age用于存儲年齡,next用于形成鏈式結構,Node定義了該類型的一個節點,List定義了該類型的一個鏈表。(1)、編寫函數CreateList()和PrintList(),從給定數組創建鏈表,打印鏈表。

int idx[8] = {1,2,3,4,5,6,7,8};int age[8] = {15,18,13,22,50,18,30,20};List CreatList(int idx[], int age[],int len){} int PrintList(List L){}(2)、編寫函數DeleteNode(List L, int delete_age),完成以下操作。int DeleteNodeAge(List L, int delete_age){} 該函數傳入List L,可以直接修改鏈表的節點,建議返回值為int 或void類型,無需為List類型,3,4題同上。2.1刪除年齡為18的成員,打印鏈表。2.2刪除年齡為20的成員,打印鏈表。2.3刪除年齡為15的成員,打印鏈表。

2.4(可選)刪除年齡為21的成員(因無此成員,報錯),打印鏈表。(3)、編寫函數InsertNodeByIdx(List L, Node nd),完成以下操作。(或編寫函數InsertNodeByIdx(List L, Node *pnd),完成以下操作。)(建議用 Node *pnd,因Node nd作為參數傳給函數InsertNodeByIdx,nd本身不能被修改,而插入鏈表需修改nd.next,故需創建新的節點把nd的idx和age賦值給新節點。)

3.1將(idx,age)=(6,23)插入鏈表,保證鏈表的idx仍為升序,打印鏈表。3.2將(idx,age)=(1,25)插入鏈表,保證鏈表的idx仍為升序,打印鏈表。(4)(選做)、編寫函數InsertNodeByAge(List L, Node nd),完成以下操作。(或編寫函數InsertNodeByAge(List L, Node *pnd),完成以下操作。)

4.1將(idx,age)=(9,31)插入鏈表,不用保證鏈表的idx仍為升序,新節點插在節點nd0后面,要求nd0.age是整個鏈表節點的age小于且最接近nd.age,打印鏈表。

(提示:本例要求插在(7,30)后面。)4.2插入節點(8,1)

(提示:本例要求插在(1,25)之前,即最前面,因age=1最小。)2.做實驗完成情況

要求實驗內容在實驗時間內全部完成,選做實驗未做。創建鏈表:

List CreateList(int idx[],int age[],int len){ List p,L;int i;L=NULL;for(i=len-1;i>=0;i--){

p=new Node;

p->age=age[i];

p->idx=idx[i];

p->next=L;

L=p;} return L;} 該操作創建一個不帶頭節點的鏈表并返回類型為List的結果 打印鏈表:

void PrintList(List L){ List p=L;printf(“idx agen”);while(p){

printf(“%d %dn”,p->idx ,p->age);

p=p->next;} } 該操作從表頭到表尾依次打印idx和age 刪除節點:

int DeleteNodeAge(List &L, int delete_age){ List p=L;int flag=0;if(p->age==delete_age){

L=L->next;

flag=1;} else{ while(p->next){

if(p->next->age==delete_age){

flag++;

if(p->next->next==NULL)

p->next=NULL;

else p->next=p->next->next;

}

else p=p->next;

} } return flag;} 該操作刪除需要刪除的節點,成功刪除返回刪除節點的個數,否則返回0 插入節點:

void InsertNodeByIdx(List &L, Node *pnd){ List p=L;if(p->idx>=pnd->idx){

pnd->next=L;

L=pnd;

return;} else{ while(p->next){

if(p->next->idx<=pnd->idx)

p=p->next;

else{

pnd->next=p->next;

p->next=pnd;

return;

}

} } } 該操作完成節點的插入,插入之后鏈表仍按idx成升序 主函數: int main(){ List L,pnd1,pnd2;pnd1=new Node;pnd2=new Node;int idx[8]={1,2,3,4,5,6,7,8},age[8]={15,18,13,22,50,18,30,20},r;L=CreateList(idx,age,8);PrintList(L);r=DeleteNodeAge(L,18);printf(“The result is %dn”,r);PrintList(L);r=DeleteNodeAge(L,20);printf(“The result is %dn”,r);PrintList(L);r=DeleteNodeAge(L,15);printf(“The result is %dn”,r);PrintList(L);pnd1->idx=6;pnd1->age=23;InsertNodeByIdx(L,pnd1);PrintList(L);pnd2->idx=1;pnd2->age=25;InsertNodeByIdx(L,pnd2);PrintList(L);system(“pause”);return 0;} 實驗結果:

從實驗代碼及結果來看,首先按要求創建單鏈表,從打印結果來看,鏈表成功創建;第二步刪除age為18的節點,從鏈表來看有兩個age為18的節點,所以Delete的返回值r為2,從打印結果來看,兩個節點成功刪除;第三步刪除age為20的節點,鏈表中只有一個符合要求的節點,所以返回值r為1,打印結果說明成功刪除;第四步插入idx為6,age為23的節點,第四步插入idx為1,age為25的節點,從打印結果來看均成功操作。

三、總結

第二篇:實驗1 線性表應用-多項式計算

一.實驗目的和要求

1.進一步掌握線性表的的基本操作。

2.掌握線性表的典型應用----多項式表示與計算。

二.實驗內容

1. 設用線性表((a1, e1),(a2, e2), ……,(am, em))表示多項式P(x)= a1*xe1 + a2*xe2 +…+ am*xem,請編寫用鏈式存儲結構(帶表頭附加結點的單鏈表)存儲該多項式時,多項式基本操作的實現函數。要求:把多項式線性表的結構定義及多項式基本操作實現函數存放在文件Linkpoly.h中。說明:基本操作可包括如下 ① 初始化多項式InitPoly(p)② 輸出多項式TraversePoly(p)③ 清除多項式ClearPoly(p)④ 插入一項 InsertPoly(p, a, e)

⑤ 刪除一項 DeletetPoly(p, a, e, pos)⑥ 多項式求值PolySum(p, x)

⑦ 多項式相加PolyAdd(p1, p2)

2. 建立主程序文件test1.cpp,在主函數main()中通過調用Linkpoly.h中的函數進行測試。

3. 編寫用順序存儲結構存儲多項式時,上述各多項式基本操作的實現函數。要求: 把多項式線性表的結構定義及多項式基本操作實現函數存放在文件Seqpoly.h中,在主程序文件test1.cpp中增加測試語句對Seqpoly.h中的函數進行測試。

4. 填寫實驗報告,實驗報告文件取名為report1.doc。

5. 上傳實驗報告文件report1.doc與源程序文件test1.cpp及Linkpoly.h、Seqpoly.h 到Ftp服務器上自己的文件夾下。

三.函數的功能說明及算法思路

包括每個函數的功能說明,及一些重要函數的算法實現思路

四.實驗結果與分析

包括運行結果截圖等

五.心得體會

記錄實驗感受、上機過程中遇到的困難及解決辦法、遺留的問題、意見和建議等。

【附錄----源程序】 Test1.cpp: #include #include #include #include “Linkpoly.h” #include “Seqpoly.h” void main(){ cout<<“現在進行第一次測試。(鏈表表示)”<

//初始化多項式

InitPoly(pb);cout<<“請輸入要測試的項數:”;cin>>n;cout<<“請依次輸入要測試的各項的系數和指數:”;for(i=0;i

cin>>a;

cin>>e;

InsertPoly(pa, a, e);

//插入一項

pa=pa->next;} pa=pa->next;cout<<“該多項式為:”;TraversePoly(pa);

//輸出多項式

cout<>a;cin>>e;cin>>pos;if(DeletetPoly(pa, a, e, pos)){

cout<<“刪除成功!現在多項式為:”;

TraversePoly(pa);

cout<

cout<<“刪除失敗!”<>x;sum=PolySum(pa, x);cout<<“該多項式的值為:”<>n;cout<<“請輸入該多項式的各項系數和指數:”;for(i=0;i

cin>>a;

cin>>e;

InsertPoly(pb, a, e);

//插入一項

pb=pb->next;} pb=pb->next;pp=PolyAdd(pa, pb);cout<<“兩多項式相加后得到的多項式為:”;TraversePoly(pp);cout<

cout<

cout<

cout<<“現在進行第二次測試。(順序表表示)”<>n;cout<<“請依次輸入要測試的各項的系數和指數:”;for(i=0;i

cin>>a;

cin>>e;

InsertPoly1(s, a, e);} cout<<“該多項式為:”;TraversePoly1(s);cout<>a;cin>>e;cin>>pos;if(DeletetPoly1(s, a, e, pos)){

cout<<“刪除成功!現在多項式為:”;

TraversePoly1(s);

cout<

cout<<“刪除失敗!”<>x;sum=PolySum1(s, x);cout<<“該多項式的值為:”<>n;cout<<“請輸入該多項式的各項系數和指數:”;for(i=0;i

cin>>a;

cin>>e;

InsertPoly1(t, a, e);

//插入一項

} q=PolyAdd1(s, t);cout<<“兩多項式相加后得到的多項式為:”;TraversePoly1(q);cout<

Linkploy.h: struct NodeType{

float coef;

int exp;

NodeType *next;};bool InitPoly(NodeType *&p)

//初始化多項式 { if((p=new NodeType)==NULL)

return false;p->next=p;return true;} void TraversePoly(NodeType *p)

//輸出多項式 {

NodeType *h=p->next;if(h!=p){

cout<coef<<“*”<<“X”<<“^”<exp;

h=h->next;} while(h!=p){

if(h->coef>0)

cout<<“+”;

cout<coef<<“*”<<“X”<<“^”<exp;

h=h->next;} } void ClearPoly(NodeType *&p)

//清除多項式 { NodeType *cp,*np;cp=p->next;while(cp!=p){

np=cp->next;

delete cp;

cp=np;} p->next=p;} bool InsertPoly(NodeType *&p, float a, int e)

//插入一項 { NodeType *h;if((h=new NodeType)==NULL)

return false;h->coef=a;h->exp=e;h->next=p->next;p->next=h;return true;} bool DeletetPoly(NodeType *&p, float a, int e, int pos)

//刪除一項 { if(pos>1||pos<-1)

return false;NodeType *cp=p->next;NodeType *np=p;if(pos==0){

while(cp!=p){

if(cp->coef==a&&cp->exp==e)

break;

else{

np=cp;

cp=cp->next;

}

} } else if(pos==-1)

while(cp!=p){

np=cp;

cp=cp->next;

} np->next=cp->next;delete cp;

return true;} double PolySum(NodeType *p, float x)

//多項式求值 { int i;double sum=0,item;

NodeType *cp=p->next;while(cp!=p){

item=1;

for(i=1;i<=cp->exp;i++)

item=item*x;

sum=sum+item*cp->coef;

cp=cp->next;} return sum;} NodeType *PolyAdd(NodeType *p1, NodeType *p2)

//多項式相加 { float coef;NodeType *a=p1->next,*b=p2->next,*c,*pc;

InitPoly(c);pc=c;while(a!=p1&&b!=p2){

if(a->exp==b->exp){

coef=a->coef+b->coef;

if(coef!=0){

InsertPoly(pc, coef, a->exp);

pc=pc->next;

}

a=a->next;

b=b->next;

}

else if(a->expexp){

InsertPoly(pc,a->coef,a->exp);

pc=pc->next;

a=a->next;

}

else{

InsertPoly(pc,b->coef,b->exp);

pc=pc->next;

b=b->next;

} } while(a!=p1){

InsertPoly(pc,a->coef,a->exp);

pc=pc->next;

a=a->next;

} while(b!=p2){

InsertPoly(pc,b->coef,b->exp);

pc=pc->next;

b=b->next;

} return c;}

Seqploy.h: #define

MaxSize 10000 struct ListType{

float *list;

int

size;};void InitPoly1(ListType &p)

//初始化多項式 { p.list=(float*)malloc(MaxSize*sizeof(float));

if(p.list==NULL){

cout<<“動態可分配的儲存空間用完,退出運行!”<

exit(1);

}

p.size=0;for(int i=0;i

p.list[i]=0;} void TraversePoly1(ListType p)

//輸出多項式 { int i=0;if(p.list[i]!=0)

cout<

for(i=1;i

if(p.list[i]!=0)

break;

cout<

if(p.list[i]>0){

cout<<“+”;

cout<

}

if(p.list[i]<0)

cout<

//清除多項式 { if(p.list!=NULL){

delete []p.list;

p.list=NULL;} p.size=0;} void InsertPoly1(ListType &p, float a, int e)

//插入一項 { p.list[e]=a;if(p.size

p.size=e;} bool DeletetPoly1(ListType &p, float a, int e, int pos)

//刪除一項 { int i,n;if(p.size==0){

cout<<“多項式為空,刪除無效!”<

return false;} if(pos==0)

if(p.list[e]==a)

p.list[e]=0;else if(pos==-1)

p.list[p.size]=0;return true;} double PolySum1(ListType p, float x)

{ double sum=0,item;int i,j;for(i=0;i<=p.size;i++){

item=1;

for(j=1;j<=i;j++)

item=item*x;

sum=sum+item*p.list[i];} return sum;} ListType PolyAdd1(ListType p1, ListType p2){ ListType p;InitPoly1(p);float coef;int i,j;for(i=0;i<=p1.size;i++){

coef=p1.list[i]+p2.list[i];

InsertPoly1(p, coef, i);}

//多項式求值

//多項式相加

if(i<=p1.size)

for(j=i;j<=p1.size;j++)

InsertPoly1(p, p1.list[j], j);if(i<=p2.size)

for(j=i;j<=p2.size;j++)

InsertPoly1(p, p2.list[j], j);return p;}

第三篇:實驗總結報告

實驗報告 專業:______

姓名:______

學號:______

日期:______

桌號:______________

課程名稱:

模擬電子技術基礎實驗

指導老師:

成績:________________ 實驗名稱:

實驗總結報告

一、體會與收獲

在這個學期中,我們一共完成了從常用電子儀器的使用到EDA 半導體器件特性仿真等五個實驗課題。具體的實驗情況在實驗報告中已經很清楚的反映了。在此我想談談我的體會與收獲。

首先,我們在試驗中面臨著很多問題。實驗儀器就是其中之一。實驗室中的很多儀器:示波器、交流毫伏表,確實是由于年代久遠而不能正常工作。但我發現,很多同學在實驗現象沒出來的情況下就借口說是實驗儀器的問題。其實不然。很多情況下,儀器沒有調試好,導致現象不明顯或者與理論相差甚遠。

在做基本運算電路設計實驗時,通過老師上課精彩的講解使我感受到了一種“新的世界觀”,認識到了理論學習和實驗的區別,在以后做實驗的時候要對所有器械保持懷疑的心態,堅持“自己測的才是準的”原則。

通過解決每一次實驗出現的問題,我在做實驗的時候變得更加有耐心。在連接電路前,都會認真分析一下實驗原理。然后根據實驗書和老師的ppt上的步驟一步一步的來做。果然,出現錯誤的幾率小了很多。其次,做實驗要養成好的習慣。很多同學在做實驗的時候態度很隨便。沒有注意諸如:連線之前檢查導線是否導通、用萬用表測電阻時不質疑短接調零、鏈接電路是帶電操作等等。也許,在很多人看來這些都是小問題。但真正每一次都做到一絲不茍,養成良好的習慣的同學并不多。

接下來,我想說的是實驗的目的。剛開始,我認為實驗是一項任務,只要完成了就行。無非就是照著課本連連線、得出個已經計算好的結果就行了。但自從自己做功放后我改變了這種看法。在做功放的時候,雖然原理圖都是被人提前設計好的。但是在做得時候總是會需要自己去調試、布線。有時候看似連接的很完美的電路,可能會因為某個地方的虛焊而不能工作。這種情況非常鍛煉你能力。在找錯誤的地方的時候你自然而然的明白了電路的原理。而且,當做好一個自己獨立完成的功放后,會有一種成就感。

最后,我想說實驗跟課本的理論相結合,在課本中學習,在實驗中檢驗。在實驗中發現,用課本知識去分析。興趣就在這一個個的實驗中激發了。當然,我明白大學的最終目的不是讓我們去做一些諸如功放之類的東西,而是鍛煉我們去探索、去發現、去學習的能力。可能我們做的某項東西很簡單或者沒有做成功,但那并不是失敗,因為你已經學習到了許多。耐心并且細心的去做每一步,堅持嚴謹的態度做到最后。每一個人都是成功者。

二、意見與建議

對模電實驗的建議:

①老師在講課過程中的實物演示部分,可以用幻燈片播放拍攝的操作短片,或是在大屏幕上放出實物照片進行講解,因為用第一排的儀器或元件直接講解的話看的不是很清楚。

②實驗室里除了后面的幾臺,前面也時不時有示波器故障,如果沒有發現示波器已故障的話會給實驗帶來麻煩。因此希望老師可以教幾個識別示波器是否故障的方法。

③選題方面,從元件的認識逐漸過渡到焊電路板進行實驗,內容涵蓋面合理,沒有更多的建議了。

感謝老師半學期來的教誨和指導!

三、課程評價

在大學二年級的第一學期,我們按課程計劃,完成了模電實驗課程的學習,我感到收獲很大。

老師在講解實驗課程時:教學內容豐富,授課生動、詳細,思路清晰,富有邏輯性、啟發性,而且善于激勵學生興趣,經常產生師生互動;他理論知識功底深厚,實踐經驗豐富,并且能夠理論聯系實際,舉例生動形象,對模電的理論學習有很大幫助;教學方式得當,能夠因材施教,給學生一個相對自我發展的空間。

他講課時語言幽默,平易近人,關心學生,深受同學好評;講課過程中認真負責,嚴格要求,把教書育人很好地結合起來。

通過模電實驗課程,增強了我的動手能力,幫助我在以后的學習生活中能夠順利解決一些難題。希望學校今后能夠為學生多開類似的課程,讓在校的學生得到更多的鍛煉機會。

第四篇:實驗總結報告

課程總結報告

姓名 : 學院:

在本課程中,我一直按時上課,從不曠課,認真聽講,積極參與課堂討論,主動思考并回答老師的提問。在創業實踐這個課程學習中,首先,我在老師的指導下對自己的創業資源進行了歸納與分析。仔細分析并搞清自己的創業優勢資源,并認真思考了如何將資源優勢轉化為創業優勢和根據自己的資源優勢與實力,思考如何走出創業第一步。利用老師提供的行業分類為自己設想了一個具體的創業點子。

接下來,我學習了從熱點中捕捉創業商機,掌握通過分析熱點捕捉創業商機的基本方法。比如注意到了新生代子女和老年人作為消費群體的需求新變化和特點已成為時下熱點話題,因此分析當前兒童和老年人市場的創業機會。針對人們收入水平提高所帶來的需求新變化這一熱點話題,因此分析了人們可支配收入提高所帶來的創業機會。并且結合自身作為大學生的身份,以學校學生宿舍區復印服務社為研究對象,或以自己最熟悉的產品/服務為研究對象。

除此之外,我還學會了利用EXCEL處理簡單函數,進行了收益分析。學習了利用五力分析模型和SWOT分析對自己的創業商機做可行性分析。了解和掌握創業企業市場分析的基本方法,通過這種分析結果進行企業決策。還學習了本量利計算,它是了解和掌握創業企業產品或服務的本量利計算基本方法。握利用本量利計算的結果我可以對創業決策進行調整的基本方法。

最后,我還針對自己的具體創業項目進行了崗位分析和人員安排信息的思考。寫出了我的創業計劃中創建公司的崗位、任務、人員數量、待遇等信息。通過京東商城的案例進行了商業模式的分析訓練,并且針對自己的創業項目確定適當商業模式的能力。結合課程中的內容對給出案例進行商業模式分析。

經過系統的創業實踐的學習,我對創業所需懂得的基本理論有了一定的掌握,并通過老師課堂講授和完成老師的實驗報告,理清了自己的創業思路,細化了創業的各個方面的內容。使得我的創業計劃不再顯得那么魯莽,沒有邏輯。

課堂學習中,我主要掌握的原理就是五力分析、SWOT分析、量本利分析和商業模式的認識。

五力分析模型是邁克爾·波特于80年代初提出,對企業戰略制定產生全球性的深遠影響。用于競爭戰略的分析,可以有效的分析客戶的競爭環境。五力分別是: 供應商的討價還價能力、購買者的討價還價能力、潛在競爭者進入的能力、替代品的替代能力、行業內競爭者現在的競爭能力;

SWOT分析方法是一種企業戰略分析方法,即根據企業自身的既定內在條件進行分析,找出企業的優勢、劣勢及機會,威脅,其中,S、W是內部因素,O、T是外部因素。按照企業競爭戰略的完整概念,戰略應是一個企業“能夠做的”(即組織的強項和弱項)和“可能做的”(即環境的機會和威脅)之間的有機組合。

量本利分析法,也叫盈虧平衡分析,是通過分析生產成本、銷售利潤和產品數量這三者的關系,掌握盈虧變化的規律,指導出企業選擇能夠以最小的成本生產最多產品并可使企業獲得最大利潤的經營方案。

商業模式是指一個完整的產品、服務和信息流體系,包括每一個參與者和其在其中起到的作用,以及每一個參與者的潛在利益和相應的收益來源和方式。在分析商業模式過程中,主要關注一類企業在市場中與用戶、供應商、其他合作辦的關系,尤其是彼此間的物流、信息流和資金流。在做實驗作業的過程中發現自己有不足的情況的時候,我會及時和一起上課的同學進行討論,通過與他人的溝通和交流中,獲取有效的信息,對自己的觀點不斷去推敲和修正。也和舍友、其它專業的同學進行交流,將課堂上要求展示的自己的創業計劃,做成PPT展示給周圍的同學,看周圍的同學的反應,詢問他們最真實的感受,比如,我的創業點子是否足夠有創意,你認為它可行性強么,有什么我表達不清楚的地方或者細節的疏忽,有什么建設性的意見等

總體的收獲就是在課堂的學習中,我認識到了創業并不是一種被迫性的,很多人創業不是在職場失意的時候。很多人創業是充滿了激情,是為了在更高一層次實現自我。是為了追求自己的一番事業。就像在最后一節課里老師給我們請來的總經理的親身經歷一樣。還感受頗多的一點是創業并不是頭腦一熱,光有激情、有想法就可以做到的,它也需要我們具有專業的知識,掌握基本的理論。在這方面,通過我們的課堂學習,我覺得我比以前有了很大的提升。

第五篇:數據結構線性表試驗報告

線性表上機實習

1、實驗目的

(1)熟悉將算法轉換為程序代碼的過程。

(2)了解順序表的邏輯結構特性,熟練掌握順序表存儲結構的C語言描述方法。

(3)熟練掌握順序表的基本運算:查找、插入、刪除等,掌握順序表的隨機存取特性。(4)了解線性表的鏈式存儲結構,熟練掌握線性表的鏈式存儲結構的C語言描述方法。(5)熟練掌握線性鏈表(單鏈表)的基本運算:查找、插入、刪除等,能在實際應用中靈活選擇適當的鏈表結構。

2、實驗要求

(1)熟悉順序表的插入、刪除和查找。(2)熟悉單鏈表的插入、刪除和查找。

3、實驗內容: ① 順序表

(1)抽象數據類型定義

typedef struct {

TypeData data[maxsize];

//容量為maxsize的靜態順手表

int n;

//順序表中的實際元素個數

}SeqList;

//靜態順序表的定義

在本次實驗中,首先建立一個空的靜態順序表,然后鍵盤輸入數據存入表中,然后進入菜單選擇界面,通過不同的數字輸入,實現對順序表,刪除,插入,查找,顯示等操作。

(2)存儲結構定義及算法思想

在順序表結構體的定義中,typedef int TypeData 為整型,存儲結構如下:

for(n=0;n

cout<<“請輸入線性表數據”<

cin>>L.data[n];

//順序將數據存入順序表

}

//其他存儲與此類似,都是直接賦值與數組的某一位

插入版塊子函數:

void insert(SeqList &L)

//插入數據 {

int a,b,c,k;

cout<<“請輸入插入的數及其插入的位置”<

cin>>a>>b;

if(b<=0||b>(L.n+1)){cout<<“不能在該位置插入”<

k=L.data[b-1];L.data[b-1]=a;c=L.n;L.n=L.n+1;

while(c>b){

L.data[c]=L.data[c-1];c--;

//通過循環,實現插入位置后的數據挨個往后移動一位

}

L.data[b]=k;} 順序表的插入與刪除操作類似,在插入與刪除后,都要循環調整后面數組的每一位元素,同時記錄數據元素的長度的標示符也要跟著改變。顯示操作是通過循環實現表中第一個元素到最后一個元素的輸出,查找操作是直接取數組中的查找位輸出。

(3)實驗結果與分析

② 單鏈表

(1)抽象數據類型定義

typedef struct node{ DataType data;

//鏈表的數據類型

struct node *link;

//鏈表的結點指針

}linknode,*linklist;

//定義了結構體linklode和結構體指針linklist

在本次實驗中,首先程序自己建立一個空的頭結點,通過菜單的功能選擇“添加鏈表數據”可自由添加鏈表的節點數及元素值。在菜單選擇中,有“添加鏈數據”,“插入鏈表數據”,“刪除鏈表數據”,“查找鏈表數據”和“顯示鏈表數據”功能,選擇不能的功能選擇就能實現不同的操作。其中“添加鏈表數據”可反復批量輸入鏈表數據。

(2)存儲結構定義及算法思想

在單鏈表中,typedef int DataType;DataType data;定義鏈表存儲數據位整型。存儲結構如下:

while(p->link!=NULL){ p=p->link;

k++;

//首先找到單鏈表的最后結點(如果是只有頭結點

} 的單鏈表則直接跳過),以便后面接著輸入數據

for(int i=0;i

{ cout<<“請輸入數據”<

//開辟新的結點空間并轉化為linklist指針型

cin>>q->data;

q->link=p->link;

//將前面一個結點的指向(及NULL)賦給新開辟的結點的指向

p->link=q;

//將插入點前面一個結點指向新開辟的的結點

p=q;

//將指明的最后一個一個結點向后移1位到最后一位,以便后面接著輸入

}

刪除結點子函數:

void delate(linklist &l){

//刪除單鏈表數據

linklist p;int m,n,i=0;

cout<<“請輸入想要刪除的結點位置”<

cin>>m;

p=l;

//將頭結點賦給轉移指針p

while(p&&i

//查找刪除結點的位置

p=p->link;

//當在單鏈表中間已查到刪除結點或p=NULL時跳出循環

i++;

} if(p==NULL){

//當p=NULL跳出循環時,表明鏈表中沒有該結點

cout<<“該結點不存在,刪除錯誤”<

}

n=p->link->data;//找到刪除接結點將數據取出并顯示出來(找結點時是找的前一個結點)

cout<<“被刪除的結點元素為: ”<

p->link=p->link->link;

//將刪除結點的前后結點鏈接起來

}

鏈表的刪除,插入操作是類似的,要考慮到加入或減少一個結點后,前后結點的鏈接關系,以及刪除或插入的是最后一個結點時,新空間的開辟與結點收尾等問題。其中刪除功能的一部分就是查找功能,顯示功能也是從鏈表的頭結點遍歷至最后一個,依次輸出。

(4)實驗結果與分析

③ 心得體會

本次數據結構實習我收獲頗豐,以前學過c語言與c++也有經常上機,但以往都是偏向于程序整體的算法設計,沒有像這次的實習這樣是著重在線性表,鏈表結構的算法設計上面。這次上機實習,讓我更加熟練了結構體及結構體指針的用法,線性表的設計等等,同時在這次實習中,引用,指針,地址這三個的用法曾一度讓我混淆,在查閱書籍后才得以解決,也希望老師在課堂上有時間時給我們詳細講解一下,指針,地址,引用三者的使用。

附錄:

順序表源代碼: #include using namespace std;#define maxsize 50 typedef int TypeData;typedef struct { TypeData data[maxsize];int n;}SeqList;

void makeSeq(SeqList &L)// 據 { int m,n,k;cout<<“請輸入線性表長度”<>m;for(n=0;n>L.data[n];} L.n=m;cout<<“您輸入的線性表為:”<

輸入線性表數輸出線性表數據

void insert(SeqList &L)//插入數據 { int a,b,c,k;cout<<“請輸入插入的數及其插入的位置”<>a>>b;if(b<=0||b>(L.n+1)){cout<<“不能在該位置插入”<b){ L.data[c]=L.data[c-1];c--;} L.data[b]=k;} void delate(SeqList &L)//刪除數據 { int wei;cout<<“請輸入想要刪除數據的位置”<>wei;if(wei<1||wei>L.n){ cout<<“不能在該位置刪除”<>a;if(a<=0||a>(L.n)){cout<<“不能在該位置插入”<

cout<<“刪除 2”<>xuanze;switch(xuanze){ case 1: insert(L);break;case 2: delate(L);break;case 3: find(L);break;case 4: showSeq(L);break;default :break;} } }

單鏈表源代碼:

#include using namespace std;typedef int DataType;typedef struct node{ DataType data;struct node *link;}linknode,*linklist;

linklist chushihua(){ linklist L;L=(linklist)malloc(sizeof(linknode));L->link=NULL;cout<<“開辟空間成功,頭結點建立”<>a;linklist p,q;

p=l;while(p->link!=NULL){ p=p->link;k++;} for(int i=0;i>q->data;q->link=p->link;p->link=q;p=q;} } void show(linklist l){ cout<<“鏈表數據為:”<link;while(p!=NULL){ cout<

data<<“ ”;p=p->link;} cout<>m;linklist p;p=l->link;while(p&&ilink;i++;} if(!p){ cout<<“鏈表沒有這么長,查找錯誤”<data<

{ linklist p,q;int m,n,i=0;

cout<<“請輸入您要插入的結點位置及插入的數據”<>m>>n;p=l;while(p&&ilink;i++;} if(p==NULL){ cout<<“不能在該位置插入,插入錯誤”<

q=(linklist)malloc(sizeof(linknode));q->data=n;q->link=p->link;p->link=q;}

void delate(linklist &l){ linklist p;int m,n,i=0;cout<<“請輸入想要刪除的結點位置”<>m;p=l;while(p&&ilink;i++;} if(p==NULL){ cout<<“該結點不存在,刪除錯誤”<link->data;cout<<“被刪除的結點元素為: ”<link=p->link->link;} void main(){ linklist L;int select;

L=chushihua();

while(1){ cout<<“請選擇功能”<>select;switch(select){

case 1: shuru(L);break;case 2: insert(L);break;case 3: delate(L);break;case 4: find(L);break;case 5: show(L);break;default :break;} } }

下載實驗總結報告-線性表word格式文檔
下載實驗總結報告-線性表.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    管理心理學實驗總結報告

    管理心理學實驗報告 姓名:魏雨強專業班級:14計科三班學號:20142823 (一) 實驗目的 了解《基本潛能》測評、《氣質測驗》測評、《華瑞智力測驗》測評的大致內容與大致環節,通過......

    沙盤演練實驗總結報告

    心得體會 通過一學期的學習與演練,我對沙盤演練有了很深的認識和感悟。我們組模擬一家珠寶公司,期間出現了一次重大錯誤,使得公司在第二三年一直處于虧損狀態,直到第四年才恢復......

    實驗三總結報告

    《數據庫原理與應用》實驗報告 實驗名稱: 實驗三 學號: 班級: 姓名: 軟件工程 一、實驗目的 1.掌握數據更新語句的使用; 2.掌握視圖操作的基本方法和應用; 3.理解基于視圖的查詢和......

    openMP實驗總結報告

    openMP實驗報告 openMP實驗報告 目錄 openMP實驗報告 .................................................. 1 OpenMP簡介 ....................................................

    實驗四總結報告

    《數據庫原理與應用》實驗報告 實驗名稱: 實驗四 學號: 班級: 姓名: 軟件工程 一、實驗目的 (1)了解Oracle數據庫中的用戶管理,模式,權限管理和角色管理。 (2)掌握為用戶分配權限的方......

    物理化學實驗總結報告.(模版)

    物 理 化 學 實 驗 總 結 報 告 班級:11精化學號:3111202230實驗1: 二組分金屬相圖的繪制 1.1實驗的操作關鍵、要點 (1)用電爐加熱樣品時,溫度要適當,溫度過高樣品易氧化變質;溫度......

    電子商務實驗總結報告

    電子商務實驗總結報告 1、廠家 凈利潤¥53,561.70 盈利 2、商場 凈利潤¥-3,099.52 虧損 3、出口商 凈利潤¥1,000.00 盈利 4、物流端 凈利潤¥-12,304.60 虧損 實驗小結 通過運用......

    電子線路實驗總結報告

    電子線路基礎實驗總結報告 總結一——實驗原理篇 基礎實驗 1、認識常用電子器件 (1)電阻色環識別: 色環標示主要應用圓柱型的電阻器上,如:碳膜電阻、金屬膜電阻、金屬氧化膜電阻......

主站蜘蛛池模板: 波多野结av衣东京热无码专区| 国产97在线 | 传媒有限公司| 最新国产精品拍自在线观看| 亚洲人精品午夜射精日韩| 国产精品国产三级国产an| 护士的小嫩嫩好紧好爽| 国产乱子伦精品无码专区| 亚洲va久久久噜噜噜久久狠狠| 亚洲 欧美 中文 日韩aⅴ综合视频| 国产日产精品一区二区三区四区的特点| 久久精品人妻一区二区三区| 国产精品无码久久av嫩草| 欧美精品黑人粗大免费| 中文区中文字幕免费看| 国产乱人偷精品人妻a片| 亚洲无码不卡| 人妻少妇久久中文字幕456| 性饥渴艳妇性色生活片在线播放| 欧洲精品一卡2卡三卡4卡影视| 亚洲国产精品无码中文在线| 中国丰满大乳乳液| 国产在线午夜不卡精品影院| 成人av鲁丝片一区二区免费| 亚洲成a人片在线观看中文无码| 人妻忍着娇喘被中进中出视频| 无码人妻丰满熟妇片毛片| 一道久久爱综合久久爱| 在线精品一区二区三区| 亚洲精品久久区二区三区蜜桃臀| 成人亚洲a片v一区二区三区日本| 成人网站免费观看| 人妻少妇乱子伦无码专区| 国产精品区一区第一页| 久久综合九色综合97伊人| 欧美成人片在线观看| 亚洲 都市 校园 激情 另类| 国产97在线 | 日韩| 国产好吊看视频在线观看| 日日碰狠狠添天天爽不卡| 国产免费午夜福利不卡片在线| 亚洲色偷偷偷鲁精品|