《資料結構》實驗指導及報告書
(ver3.1,2011)
學年第學期
姓名學號
班級指導教師
電腦科學與工程學院
2011
1、複習c語言中函式、陣列、指標、結構體與共用體等的概念。
2、熟悉利用c語言進行程式設計的一般方法。
說明以下c語言中的概念
1、 函式:
2、 陣列:
3、指標:
4、結構體
5、共用體
1、除錯程式:輸出100以內所有的素數(用函式實現)。
#include
int isprime(int n判斷乙個數是否為素數*/
int m;
for(m=2;m*m<=n;m++)
if(n%m==0) return 0;
return 1;
}int main輸出100以內所有素數*/
int i; printf("\n");
for(i=2;i<100;i++)
if(isprime(i)==1) printf("%4d",i);
return 0;
}執行結果:
2、 除錯程式:對一維陣列中的元素進行逆序排列。
#include
#define n 10
int main(),i,temp;
printf("\nthe original array is:\n ");
for(i=0;i printf("%4d",a[i]);
for(i=0;i temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp;
}printf("\nthe changed array is:\n");
for(i=0;i printf("%4d",a[i]);
return 0;
}執行結果:
3、 除錯程式:在二維陣列中,若某一位置上的元素在該行中最大,而在該列中最小,則該元素即為該二維陣列的乙個鞍點。要求從鍵盤上輸入乙個二維陣列,當鞍點存在時,把鞍點找出來。
#include
#define m 3
#define n 4
int main()
for(i=0;i k=0;
for(j=1;jif(a[i][j]>a[i][k])
k=j;
for(j=0;jif(a[j][k]break;
if(j==m在第i行找到鞍點*/
printf("%d,%d,%d\n",a[i][k],i,k);
}return 0;
}執行結果:
4、 除錯程式:利用指標輸出二維陣列的元素。
#include
int main();
int *p;
for(p=a[0];p if((p-a[0])%4==0) printf("\n");
printf("%4d",*p);
}return 0;
}執行結果:
5、 除錯程式:設有乙個教師與學生通用的**,教師的資料有姓名、年齡、職業、教研室四項,學生有姓名、年齡、專業、班級四項,程式設計輸入人員的資料,再以**輸出。
#include
#define n 10
struct studentdepa;
}stu[n];
int main()
printf(「name age job class/office」);
for(i=0;i if(stu[i].job==』s』)
printf("%s %3d %3c %d\n",stu[i].name, stu[i].age, stu[i].job, stu[i].depa.class);
else
printf("%s %3d %3c %s\n",stu[i].name, stu[i].age, stu[i].job, stu[i].depa.office);
}}輸入的資料:2
wang 19 s 99061
li 36 t computer
執行結果:
1、掌握線性表中元素的前驅、後續的概念。
2、掌握順序表與鍊錶的建立、插入元素、刪除表中某元素的演算法。
3、對線性表相應演算法的時間複雜度進行分析。
4、理解順序表、鍊錶資料結構的特點(優缺點)。
說明以下概念
1、線性表:
2、順序表:
3、鍊錶:
1、閱讀下面程式,在橫線處填寫函式的基本功能。並執行程式,寫出結果。
#include
#include
#define error 0
#define ok 1
#define init_size 5 /*初始分配的順序表長度*/
#define increm 5溢位時,順序表長度的增量*/
typedef int elemtype; /*定義表元素的型別*/
typedef struct sqlistsqlist;
int initlist_sq(sqlist *l
int createlist_sq(sqlist *l,int n
int listinsert_sq(sqlist *l,int i,elemtype e
int printlist_sq(sqlist *l); /*輸出順序表的元素*/
int listdelete_sq(sqlist *l,int i); /*刪除第i個元素*/
int listlocate(sqlist *l,elemtype e); /*查詢值為e的元素*/
int initlist_sq(sqlist *l)/*initlist*/
int createlist_sq(sqlist *l,int n)
return ok;
}/*createlist*/
/*輸出順序表中的元素*/
int printlist_sq(sqlist *l)/*printlist*/
int listinsert_sq(sqlist *l,int i,elemtype e){
int k;
if(i<1||i>l->length+1)
return error;
if(l->length>=l->listsize){
l->slist=(elemtype*)realloc(l->slist,
(init_size+increm)*sizeof(elemtype));
資料結構講義 嚴蔚敏版
第0章複習提示 1 一 教材內容 1 二 複習提示 1 1.經典演算法 1 2.緒論 1 3.線性表 2 4.棧和佇列 2 5.串 2 6.樹和二叉樹 2 7.圖 3 8.查詢表 3 9.內部排序 3 第1章緒論 5 一 基礎知識 5 二 演算法 5 三 習題 6 第2章線性表 7 一 基礎知識和演...
資料結構題集答案 C語言版 嚴蔚敏 吳偉民著
解 資料是對客觀事物的符號表示。在電腦科學中是指所有能輸入到計算機中並被電腦程式處理的符號的總稱。資料元素是資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。資料物件是性質相同的資料元素的集合,是資料的乙個子集。資料結構是相互之間存在一種或多種特定關係的資料元素的集合。儲存結構是資料結構在...
資料結構 C語言版
考試大綱將陸續公布 計算機應用基礎考試大綱 主要考查計算機應用基礎知識,參考參考用書課後練習內容。其它同型別的計算機應用基礎教材均可作為複習用書 高等數學考試大綱 一 函式 二 極限 1 數列極限的概念 2 數列極限的性質 3 函式極限的概念 4 函式極限的定理 5 無窮小量和無窮大量 6 兩個重要...