第一篇:廣東工業大學數據結構實驗報告(12屆)
廣東工業大學數據結構實驗報告(1)
學院:自動化
專業:12級物聯網3班
姓名:xxx 學號:xxx 老師:張小波
實驗日期:2014年6月21日
實驗地點:實二203 成績評定:
實驗題目:求一個正整數的各位數字之和
一、實驗目的 求一個正整數的各位數字之和。
二、實驗軟件環境
1.計算機每人一臺。2.軟件:Visual Studio 2012
三、實驗內容
#include
s+=num%10;
num/=10;} while(num);return(s);} void main(){ int n;printf(“輸入一個整數:”);scanf(“%d”,&n);printf(“各位數字之和:%dn”,func(n));printf(“n”);}
四、實驗結果和分析
當輸入一個整數的時候,得出的是該整數的所有數字的和
五、實驗心得體會
本實驗過程中,感覺能用簡單的方法實現程序就應該用簡單的,一開始我用了多個for循環,感覺沒必要,就用了do-while循環,因此保持程序的簡潔,精悍是最應該的,過于冗雜的程序不僅臃腫,而且難以分析,分享。
廣東工業大學數據結構實驗報告(2)
學院:自動化
專業:12級物聯網3班
姓名:xxx 學號:xxx 老師:張小波
實驗日期:2014年6月21日
實驗地點:實二203 成績評定:
實驗題目:求兩個多項式的相加運算
一、實驗目的 熟悉并學會使用多項式的表示方法以及計算方法
二、實驗軟件環境
1.計算機每人一臺。2.軟件:Visual Studio 2012
三、實驗內容
#include
int exp;
} PolyArray[MAX];typedef struct pnode //定義單鏈表結點類型 { double coef;
int exp;} PolyNode;void DispPoly(PolyNode *L)//輸出多項式 { bool first=true;
PolyNode *p=L->next;while(p!=NULL)//多項式最多項數
//定義存放多項式的數組類型
//系數 //指數
//系數 //指數
struct pnode *next;//first為true表示是第一項
{
} printf(“n”);} void DestroyList(PolyNode *&L)//銷毀單鏈表 { PolyNode *p=L,*q=p->next;while(q!=NULL){
} free(p);} void CreateListR(PolyNode *&L,PolyArray a,int n)//尾插法建表 { PolyNode *s,*r;int i;L=(PolyNode *)malloc(sizeof(PolyNode));//創建頭結點
L->next=NULL;r=L;
{
} r->next=NULL;} void Sort(PolyNode *&head){ PolyNode *p=head->next,*q,*r;if(p!=NULL)
if(first)
first=false;printf(“+”);printf(“%g”,p->coef);printf(“%gx”,p->coef);printf(“%gx^%d”,p->coef,p->exp);else if(p->coef>0)if(p->exp==0)else if(p->exp==1)else p=p->next;free(p);p=q;q=p->next;
//r始終指向終端結點,開始時指向頭結點
for(i=0;i
//按exp域遞減排序
//將*s插入*r之后
//若原單鏈表中有一個或以上的數據結點
{
} } void Add(PolyNode *ha,PolyNode *hb,PolyNode *&hc)//求兩有序集合的并 { PolyNode *pa=ha->next,*pb=hb->next,*s,*tc;double c;hc=(PolyNode *)malloc(sizeof(PolyNode));tc=hc;while(pa!=NULL && pb!=NULL){
r=p->next;p=r;
//r保存*p結點后繼結點的指針
p->next=NULL;while(p!=NULL){
} r=p->next;q=head;//構造只含一個數據結點的有序表
//r保存*p結點后繼結點的指針
while(q->next!=NULL && q->next->exp>p->exp)q=q->next;
//在有序表中找插入*p的前驅結點*q p->next=q->next;//將*p插入到*q之后 q->next=p;p=r;
//創建頭結點
if(pa->exp>pb->exp){
} else if(pa->exp
exp){
} else {
c=pa->coef+pb->coef;if(c!=0){
s=(PolyNode *)malloc(sizeof(PolyNode));//復制結點 s->exp=pa->exp;s->coef=c;tc->next=s;tc=s;//系數之和不為0時創建新結點 //pa->exp=pb->exp s=(PolyNode *)malloc(sizeof(PolyNode));//復制結點 s->exp=pb->exp;s->coef=pb->coef;tc->next=s;tc=s;pb=pb->next;s=(PolyNode *)malloc(sizeof(PolyNode));//復制結點 s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;
}
} } pa=pa->next;pb=pb->next;if(pb!=NULL)pa=pb;//復制余下的結點
while(pa!=NULL){
} tc->next=NULL;} void main(){ PolyNode *ha,*hb,*hc;PolyArray a={{1.2,0},{2.5,1},{3.2,3},{-2.5,5}};PolyArray b={{-1.2,0},{2.5,1},{3.2,3},{2.5,5},{5.4,10}};CreateListR(ha,a,4);CreateListR(hb,b,5);printf(“原多項式A: ”);DispPoly(ha);printf(“原多項式B: ”);DispPoly(hb);Sort(ha);Sort(hb);printf(“有序多項式A: ”);DispPoly(ha);printf(“有序多項式B: ”);DispPoly(hb);Add(ha,hb,hc);printf(“多項式相加: ”);DispPoly(hc);DestroyList(ha);DestroyList(hb);DestroyList(hc);} s=(PolyNode *)malloc(sizeof(PolyNode));//復制結點 s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;
四、實驗結果和分析
五、實驗心得體會
本實驗過程中,我進一步了解了單鏈表的各種操作以及對應的函數的使用方法,以及學會熟練調用函數來實現,比較深刻地體會到了使用單鏈表的好處和方便。
廣東工業大學數據結構實驗報告(3)
學院:自動化
專業:12級物聯網3班
姓名:xxx
學號:xxx 老師:張小波
實驗日期:2014年6月21日
實驗地點:實二203 成績評定:
實驗題目:病人看病模擬程序
一、實驗目的掌握順序棧以及循環隊列的使用。
二、實驗軟件環境
1.計算機每人一臺。2.軟件:Visual Studio 2012
三、實驗內容
#include
{
//鏈隊節點類型
typedef struct
//鏈隊類型
void Destroyqueue(QuType *&qu)//釋放鏈隊
//若鏈隊不空
q=p->next;while(q!=NULL)
//釋放隊中所有的節點
{
free(p);
p=q;
q=q->next;
}
free(p);} free(qu);
//釋放鏈隊節點
} void SeeDoctor(){ int sel,flag=1,find,no;QuType *qu;QNode *p;qu=(QuType *)malloc(sizeof(QuType));//創建空隊 qu->front=qu->rear=NULL;while(flag==1)
//循環執行
{ printf(“1:排隊 2:就診 3:查看排隊 4.不再排隊,余下依次就診 5:下班
scanf(”%d“,&sel);
switch(sel)
{
case 1: printf(” >>輸入病歷號:“);
do
{
scanf(”%d“,&no);
find=0;
p=qu->front;
while(p!=NULL &&!find)
{
if(p->data==no)
find=1;
else
p=p->next;
}
if(find)
printf(” >>輸入的病歷號重復,重新輸入:“);
} while(find==1);
p=(QNode *)malloc(sizeof(QNode));//創建節點
p->data=no;p->next=NULL;
if(qu->rear==NULL)
//第一個病人排隊
qu->front=qu->rear=p;
else
{
qu->rear->next=p;qu->rear=p;//將*p節點入隊
}
請選擇:”);
break;
//隊空 //隊不空
{ p=qu->front;printf(“ >>病人%d就診n”,p->data);if(qu->rear==p)
//只有一個病人排隊的情況
qu->front=qu->rear=NULL;printf(“ >>沒有排隊的病人!n”);
case 2: if(qu->front==NULL)
else
else qu->front=p->next;free(p);break;
//隊空 //隊不空 printf(“ >>沒有排列的病人!n”);
}
case 3:if(qu->front==NULL)
else
{
} break;
p=qu->front;printf(“ >>排隊病人:”);while(p!=NULL){
} printf(“n”);printf(“%d ”,p->data);p=p->next;case 4:if(qu->front==NULL)
//隊空 //隊不空 printf(“ >>沒有排列的病人!n”);
else
{
} Destroyqueue(qu);flag=0;break;
//隊不空
printf(“ >>請排隊的病人明天就醫!n”);
//釋放鏈隊 //退出 p=qu->front;printf(“ >>病人按以下順序就診:”);while(p!=NULL){
} printf(“n”);printf(“%d ”,p->data);p=p->next;
case 5:if(qu->front!=NULL)
} void main(){ SeeDoctor();}
} flag=0;
break;
//退出
//釋放鏈隊 Destroyqueue(qu);}
四、實驗結果和分析
五、實驗心得體會
本實驗過程中,要求考慮的情況較多,在循環隊列中使用指針的使用過程中對空的這種情況還是欠缺考慮,所以以后在進行循環隊列使用中務必要記得考慮對空的情況。
廣東工業大學數據結構實驗報告(4)
學院:自動化
專業:12級物聯網3班
姓名:xxx 學號:xxx
老師:張小波
實驗日期:2014年6月21日
實驗地點:實二203 成績評定:
實驗題目:文本串加密和解密程序
一、實驗目的掌握順序棧以及循環隊列的使用。
二、實驗軟件環境
1.計算機每人一臺。2.軟件:Visual Studio 2012
三、實驗內容
lgo4-1.cpp #include
} void StrCopy(SqString &s,SqString t){
} bool StrEqual(SqString s,SqString t)
//最多的字符個數
//定義可容納MaxSize個字符的空間
int length;//標記當前實際串長
int i;s.data[i]=cstr[i];for(i=0;cstr[i]!=' 主站蜘蛛池模板: 色欲久久久天天天综合网| 国产精品久久自在自线青柠| 天天燥日日燥| 精国产品一区二区三区a片| 国产精品亚洲综合一区在线观看| 国产无遮挡又爽又刺激的视频老师| 亚洲色欲在线播放一区| 无码亚欧激情视频在线观看| 国产真人无码作爱视频免费| 色偷偷亚洲第一成人综合网址| 久久精品国产成人| 国产又黄又爽又猛免费视频播放| 精品国产av无码一道| 久久综合亚洲色一区二区三区| 亚洲国产成人精品无码一区二区| 国内综合精品午夜久久资源| 美女毛片一区二区三区四区| 久久久综合亚洲色一区二区三区| 久久99国产综合精品免费| 一本之道av不卡精品| 亚洲国产成人久久精品大牛影视| 丰满岳乱妇在线观看中字无码| 国产美女亚洲精品久久久综合| 狠狠色丁香五月综合婷婷| 国产亚洲精久久久久久无码色戒| 少妇人妻无码专用视频| 老妇肥熟凸凹丰满刺激| 正在播放国产多p交换视频| 欧美老妇多毛xxxxx极瑞视频| 亚洲精品久久久久久av| 午夜色大片在线观看| 国产乱子乱人伦电影在线观看| 少妇特黄a一区二区三区| 无码人妻h动漫中文字幕| 九九99久久精品综合| 国产精品极品美女自在线观看免费| 亚洲妇女无套内射精| 97无码免费人妻超级碰碰碰碰| 久久精品国产99国产精2021| 中国大陆高清aⅴ毛片| 国产亚洲精品字幕在线观看|