第一篇:算法與數據結構實驗 14計統一 1413101001 王成
金陵科技學院實驗報告
學 生 實 驗 報 告 冊
課程名稱:
學生學號:
所屬院部:
(理工類)
算法與數據結構 專業班級:14計算機科學與技術1 1413101001 學生姓名: 王成
計算機工程 指導教師: 徐永華 15 ——20 16 學年 第 二 學期
金陵科技學院教務處制
金陵科技學院實驗報告
實驗報告書寫要求
實驗報告原則上要求學生手寫,要求書寫工整。若因課程特點需打印的,要遵照以下字體、字號、間距等的具體要求。紙張一律采用A4的紙張。
實驗報告書寫說明
實驗報告中一至四項內容為必填項,包括實驗目的和要求;實驗儀器和設備;實驗內容與過程;實驗結果與分析。各院部可根據學科特點和實驗具體要求增加項目。
填寫注意事項
(1)細致觀察,及時、準確、如實記錄。(2)準確說明,層次清晰。
(3)盡量采用專用術語來說明事物。
(4)外文、符號、公式要準確,應使用統一規定的名詞和符號。(5)應獨立完成實驗報告的書寫,嚴禁抄襲、復印,一經發現,以零分論處。
實驗報告批改說明
實驗報告的批改要及時、認真、仔細,一律用紅色筆批改。實驗報告的批改成績采用百分制,具體評分標準由各院部自行制定。
實驗報告裝訂要求
實驗批改完畢后,任課老師將每門課程的每個實驗項目的實驗報告以自然班為單位、按學號升序排列,裝訂成冊,并附上一份該門課程的實驗大綱。
金陵科技學院實驗報告
實驗項目名稱: 順序表 實驗學時: 2 同組學生姓名: 實驗地點: A101 實驗日期: 4.5 實驗成績: 批改教師: 批改時間:
金陵科技學院實驗報告
實驗1 順序表
一、實驗目的和要求
掌握順序表的定位、插入、刪除等操作。
二、實驗儀器和設備
Turbo C 2.0
三、實驗內容與過程(含程序清單及流程圖)
1、必做題
(1)編寫程序建立一個順序表,并逐個輸出順序表中所有數據元素的值。編寫主函數測試結果。
(2)編寫順序表定位操作子函數,在順序表中查找是否存在數據元素x。如果存在,返回順序表中和x值相等的第1個數據元素的序號(序號從0開始編號);如果不存在,返回-1。編寫主函數測試結果。(3)在遞增有序的順序表中插入一個新結點x,保持順序表的有序性。
解題思路:首先查找插入的位置,再移位,最后進行插入操作;從第一個元素開始找到第一個大于該新結點值x的元素位置i即為插入位置;然后將從表尾開始依次將元素后移一個位置直至元素i;最后將新結點x插入到i位置。
(4)刪除順序表中所有等于X的數據元素。
2、選做題
(5)已知兩個順序表A和B按元素值遞增有序排列,要求寫一算法實現將A和B歸并成一個按元素值遞減有序排列的順序表(允許表中含有值相同的元素)。
程序清單:
#include
金陵科技學院實驗報告
{
} int locate(sequenlist a,int x){
} int insert(sequenlist *a,int x){ int i,j;int i;for(i=0;i } return-1;if(a.data[i]==x){ } return i;int i;printf(“要輸入幾個數:n”);scanf(“%d”,&a->length);if(a->length<=maxsize){ } else printf(“溢出n”);for(i=0;i } printf(“請輸入數字:n”);scanf(“%d”,&a->data[i]); 金陵科技學院實驗報告 } if(a->length==maxsize){ } for(i=0;i } a->data[a->length]=x;a->length++;if(a->data[i]>x){ } for(j=a->length-1;j>=i;j--)a->data[j+1]=a->data[j];printf(“溢出”);return-1;a->data[i]=x;a->length++;return 1;void Delete(sequenlist *a,int x){ int i,j;for(i=0,j=0;i if(a->data[i]==x){ for(j=i;j<(a->length);j++)a->data[j]=a->data[j+1];a->length--;i--; 金陵科技學院實驗報告 } } } void combine(sequenlist *a,sequenlist *b,sequenlist *c){ } main(){ int i,x;int i,j;if((a->length+b->length)>maxsize)printf(“溢出”);else { } for(i=(a->length-1),j=(b->length-1);i>=0||j>=0;){ if(a->data[i]>b->data[j]){ c->data[c->length]=a->data[i];c->length++;i--;} else } { c->data[c->length]=b->data[j];c->length++;j--;} 金陵科技學院實驗報告 sequenlist a,b,c;c.length=0;setup(&a);for(i=0;i 金陵科技學院實驗報告 } for(i=0;i 四、實驗結果與分析(程序運行結果及其分析) 金陵科技學院實驗報告 五、實驗體會(遇到問題及解決辦法,編程后的心得體會) 這次編程總的來說還是很簡單的,但在編程過程中一定要考慮邊界條件,以免出現數據溢出。 金陵科技學院實驗報告 實驗項目名稱: 單鏈表 實驗學時: 2 同組學生姓名: 實驗地點: A101 實驗日期: 2016.4.12 實驗成績: 批改教師: 批改時間: 金陵科技學院實驗報告 實驗2 單鏈表 一、實驗目的和要求 1、實驗目的 掌握單鏈表的定位、插入、刪除等操作。 2、實驗要求 (1)注意鏈表的空間是動態分配的,某結點不用之后要及時進行物理刪除,以便釋放其內存空間。 (2)鏈表不能實現直接定位,一定注意指針的保存,防止丟失。 二、實驗儀器和設備 Turbo C 2.0 三、實驗內容與過程(含程序清單及流程圖) 1、必做題 (1)編寫程序建立一個單鏈表,并逐個輸出單鏈表中所有數據元素。(2)在遞增有序的單鏈表中插入一個新結點x,保持單鏈表的有序性。 解題思路:首先查找插入的位置然后進行插入操作;從第一個結點開始找到第一個大于該新結點值的結點即為插入位置;然后在找到的此結點之前插入新結點;注意保留插入位置之前結點的指針才能完成插入操作。 (3)編寫實現帶頭結點單鏈表就地逆置的子函數,并編寫主函數測試結果。 2、選做題 已知指針LA和LB分別指向兩個無頭結點單鏈表的首元結點。要求編一算法實現,從表LA中刪除自第i個元素起共len個元素后,將它們插入到表LB中第j個元素之前。程序清單: #include 金陵科技學院實驗報告 linklist *create(){ int i;linklist *head,*p,*r;head=(linklist*)malloc(sizeof(linklist));r=head;printf(“輸入幾個數據:n”);scanf(“%d”,&head->data);for(i=0;i printf(“請輸入數據:n”); p=(linklist*)malloc(sizeof(linklist)); scanf(“%d”,&p->data); r->next=p; r=p;} r->next=NULL;return head;} void display(linklist *head){ 金陵科技學院實驗報告 linklist *p;p=head->next;do { printf(“%4d”,p->data); p=p->next;}while(p);printf(“n”);} void sort(linklist *head){ linklist *p,*q;int x;for(p=head->next;p->next!=NULL;p=p->next){ for(q=p->next;q!=NULL;q=q->next) { if(p->data>q->data) { x=p->data; p->data=q->data; q->data=x; 金陵科技學院實驗報告 } } } } void insert(linklist *head){ int x;linklist *p,*r;printf(“輸入要插入的數:n”);scanf(“%d”,&x);r=(linklist*)malloc(sizeof(linklist));r->data=x;p=head->next;while(p->data p=p->next;if(p->next==NULL){ p->next=r; r->next=NULL;} else { 金陵科技學院實驗報告 r->next=p->next;p->next=r;} head->data++;} void ni(linklist *head){ linklist *p,*r;int i,j,n;r=head->next;j=head->data;while(j>head->data /2){ p=head;i=0;while(p->next!=NULL&&i p=p->next; i++;} n=p->data;p->data=r->data; 金陵科技學院實驗報告 r->data=n;j--;r=r->next;} } main(){ linklist *head;head=create();display(head);sort(head);printf(“輸出排序后的:n”);display(head);insert(head);display(head);ni(head);display(head);} 金陵科技學院實驗報告 四、實驗結果與分析(程序運行結果及其分析) 五、實驗體會(遇到問題及解決辦法,編程后的心得體會) 在這次試驗中,我學會了單鏈表的建立,插入,刪除等基本操作。剛開始時,由于對單鏈表的操作不是很熟悉出現了很多錯誤,但在翻閱書本后還是一一解決了。 單鏈表比起數組,它的插入,刪除等操作要更簡便,不會浪費存儲空間。 金陵科技學院實驗報告 實驗項目名稱: 堆棧和隊列 實驗學時: 2 同組學生姓名: 實驗地點: 實驗日期: 實驗成績: 批改教師: 批改時間: 金陵科技學院實驗報告 實驗3 堆棧和隊列 一、實驗目的和要求 (1)掌握應用棧解決問題的方法。(2)掌握利用棧進行表達式求和的算法。 (3)掌握隊列的存儲結構及基本操作實現,并能在相應的應用問題中正確選用它們。 二、實驗儀器和設備 Turbo C 2.0 三、實驗內容與過程(含程序清單及流程圖) 1、必做題 (1)判斷一個算術表達式中開括號和閉括號是否配對。(2)測試“漢諾塔”問題。 (3)假設稱正讀和反讀都相同的字符序列為”回文”,試寫一個算法判別讀入的一個以’@’為結束符的字符序列是否是“回文”。 2、選做題 在順序存儲結構上實現輸出受限的雙端循環隊列的入列和出列算法。設每個元素表示一個待處理的作業,元素值表示作業的預計時間。入隊列采取簡化的短作業優先原則,若一個新提交的作業的預計執行時間小于隊頭和隊尾作業的平均時間,則插入在隊頭,否則插入在隊尾。程序清單: #include 金陵科技學院實驗報告 { if(maxsize-1 == s->top){ printf(“??臻g已滿!”);return;} else { ++s->top;s->data[s->top] = ch;} } char Pop(Stack *s){ char ch;if(-1 == s->top){ printf(“空棧!”);return '
主站蜘蛛池模板:
尤物av无码国产在线看|
亚洲欧美不卡高清在线观看|
欧美成人怡红院一区二区|
日本高清无卡码一区二区|
国产va免费精品高清在线|
国产亚洲综合欧美一区二区|
亚洲国产精品隔壁老王|
国产熟妇人妻精品一区二区动漫|
一区二区三区在线 | 日本|
国产亚洲欧美另类一区二区|
国产免费又爽又色又粗视频|
中文字幕有码无码人妻av蜜桃|
国产免费一区二区三区免费视频|
国产成人无码精品一区在线观看|
中国浓毛少妇毛茸茸|
精品国产人妻一区二区三区|
国自产偷精品不卡在线|
久久婷婷五月综合成人d啪|
最新亚洲伦理中文字幕|
色偷偷亚洲男人本色|
九九久re8在线精品视频|
亚洲国产天堂久久综合226114|
欧美日韩在线视频一区|
欧美成人午夜性视频|
JUL-632无码中文字幕|
中国女人内谢69xxxxxa片|
蜜桃少妇av久久久久久久|
2020国产精品精品国产|
日本乱偷人妻中文字幕|
成年永久一区二区三区免费视频|
人妻少妇不满足中文字幕|
免费网站看sm调教视频|
亚洲精品国产高清一线久久|
精品日韩欧美一区二区在线播放|
国产成人无码精品亚洲|
极品美女扒开粉嫩小泬|
国产偷国产偷亚洲清高app|
人妻老妇乱子伦精品无码专区|
久久婷婷色香五月综合缴缴情|
97久久精品无码一区二区天美|
亚洲香蕉网久久综合影院小说|