欢迎来到天天文库
浏览记录
ID:5883599
大小:194.90 KB
页数:13页
时间:2017-12-27
《安徽工业大学数据结构实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数据结构》实验报告书专业班级计131班学号139074018姓名任凯教师王喜凤实验一:用栈判断字符串是否回文?1.实验日期2015年6月15日2.实验目的会使用栈,进栈与出栈3.实验内容输入一个字符串,用栈的方法判断它是否是回文4.设计思路先写一个堆栈,然后把字符串的内容按照顺序进栈,然后依次出栈,比较是否是回文5.主要程序代码#include#include#definemax10classorder_stack{private:inttop;chartemp[max];public:ord
2、er_stack()//初始化栈{top=0;memset(temp,0,sizeof(temp));}voidpush(charstr);//入栈charpop();//出栈};voidorder_stack::push(charstr){if(top>=max){cout<<"thestackisfull"<3、estackisempty"<>str;fo4、r(unsignedinti=0;i5、查找(3)建立这20个数的二叉排序树,并进行查找。4.设计思路先用一个20的int数组来保存者20个数,然后进行顺序查找,再利用冒泡算法把它们排好从小到大的序,再利用折半查找某个数,最后利用这些数,建立一个二叉排序树,再查找。5.主要程序代码#includeusingnamespacestd;typedefintInfoType;typedefintKeyType;typedefstructnode{KeyTypekey;InfoTypeotherinfo;structnode*lchild,*rchild;}BSTN6、ode;typedefBSTNode*BSTree;BSTNode*SearchBST(BSTreeT,KeyTypekey){if(T==NULL7、8、key==T->key)returnT;if(keykey)returnSearchBST(T->lchild,key);elsereturnSearchBST(T->rchild,key);}voidInsertBST(BSTree*T,intkey){BSTNode*p,*q;if((*T)==NULL){BSTreeT=newBSTNode();(*T).key=key;(*9、T).lchild=(*T).rchild=NULL;}else{p=(*T);while(p){q=p;if(p->key>key)p=q->lchild;elseif(p->keyrchild;else{cout<key=key;p->lchild=p->rchild=NULL;if(q->key>key)q->lchild=p;elseq->rchild=p;}}BSTre10、eCreateBST(int*a){BSTreeT=NULL;for(inti=0;i<20;i++){InsertBST(&T,a[i]);}returnT;}voidListBinTree
3、estackisempty"<>str;fo
4、r(unsignedinti=0;i5、查找(3)建立这20个数的二叉排序树,并进行查找。4.设计思路先用一个20的int数组来保存者20个数,然后进行顺序查找,再利用冒泡算法把它们排好从小到大的序,再利用折半查找某个数,最后利用这些数,建立一个二叉排序树,再查找。5.主要程序代码#includeusingnamespacestd;typedefintInfoType;typedefintKeyType;typedefstructnode{KeyTypekey;InfoTypeotherinfo;structnode*lchild,*rchild;}BSTN6、ode;typedefBSTNode*BSTree;BSTNode*SearchBST(BSTreeT,KeyTypekey){if(T==NULL7、8、key==T->key)returnT;if(keykey)returnSearchBST(T->lchild,key);elsereturnSearchBST(T->rchild,key);}voidInsertBST(BSTree*T,intkey){BSTNode*p,*q;if((*T)==NULL){BSTreeT=newBSTNode();(*T).key=key;(*9、T).lchild=(*T).rchild=NULL;}else{p=(*T);while(p){q=p;if(p->key>key)p=q->lchild;elseif(p->keyrchild;else{cout<key=key;p->lchild=p->rchild=NULL;if(q->key>key)q->lchild=p;elseq->rchild=p;}}BSTre10、eCreateBST(int*a){BSTreeT=NULL;for(inti=0;i<20;i++){InsertBST(&T,a[i]);}returnT;}voidListBinTree
5、查找(3)建立这20个数的二叉排序树,并进行查找。4.设计思路先用一个20的int数组来保存者20个数,然后进行顺序查找,再利用冒泡算法把它们排好从小到大的序,再利用折半查找某个数,最后利用这些数,建立一个二叉排序树,再查找。5.主要程序代码#includeusingnamespacestd;typedefintInfoType;typedefintKeyType;typedefstructnode{KeyTypekey;InfoTypeotherinfo;structnode*lchild,*rchild;}BSTN
6、ode;typedefBSTNode*BSTree;BSTNode*SearchBST(BSTreeT,KeyTypekey){if(T==NULL
7、
8、key==T->key)returnT;if(keykey)returnSearchBST(T->lchild,key);elsereturnSearchBST(T->rchild,key);}voidInsertBST(BSTree*T,intkey){BSTNode*p,*q;if((*T)==NULL){BSTreeT=newBSTNode();(*T).key=key;(*
9、T).lchild=(*T).rchild=NULL;}else{p=(*T);while(p){q=p;if(p->key>key)p=q->lchild;elseif(p->keyrchild;else{cout<key=key;p->lchild=p->rchild=NULL;if(q->key>key)q->lchild=p;elseq->rchild=p;}}BSTre
10、eCreateBST(int*a){BSTreeT=NULL;for(inti=0;i<20;i++){InsertBST(&T,a[i]);}returnT;}voidListBinTree
此文档下载收益归作者所有