还剩36页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据构造试验汇报学号08055140班级计算机86姓名邓凯提交日期091216ifroot!=NULLprintfH%c n,root-data;PreOrderroot-lchild;PreOrderroot-rchild;}中序遍历void InOrderBinTree root/ifroot!=NULLPreOrderroot-lchild;printfM%c M,root-data;PreOrderroot-rchild;/后序遍历ifroot!=NULLPreOrderroot-lchild;PreOrderroot-rchild;}printfn%cH,root-data;
四、Microsoft vs
6.0
五、源程序带注释或阐明、运行成果数据或屏幕显示、成果分析、讨论Tn#includestdio.h#includestdlib.htypedef struct BNode{char data;struct BNode*lchild;structBNode*rchild;}BTNode;typedef BTNode*BinTree;char ch;ch=getchar;ifch=空格*root=NULL;//建立空二叉树else*root=BTNode*mallocsizeofBTNode;〃开辟空间,生成节点*root-data=ch;CreateBinTree*root-lchild;CreateBinTree*root-rchild;void PreOrderBinTree root//先序遍历ifroot!=NULLprintfn%cn,root-data;PreOrderroot-lchild;PreOrderroot-rchild;void InOrderBinTreeroot//中序遍历ifroot!=NULLPreOrderroot-lchild;printfn%c n,root-data;PreOrderroot-rchild;void PostOrderBinTreeroot//后序遍历ifroot!=NULLPreOrderroot-lchild;PreOrderroot-rchild;}printfn%c,root-data;void mainBinTreeroot;CreateBinTreeroot;printf先序遍历PreOrderroot;printfn\nn;printf中序遍历:;InOrderroot;printfH\nn;printf后序遍历PostOrderroot;printfn\nn;输入ab##c###运行成果先continue输入abc##de#g##f###运行成果:de gf先abcdegf中后bcdegf abcdegfaany keycontinueto输入abc#de##f##i##g#hj###baserpbase^^rpbbaacabnaccy运行成果:先序abcdef ighjbcdefiaghjbcdefighjaPress any key to continue
六、上机总结课上的速度飞快,还没来得及看书,一章就过去了目前听课更还是像此前同样,云里雾里,都快成仙了,不过有些时候还是能听懂,但总也听不完全,因此做这样的试验真可谓是难啊,先得看上半天H勺书,然后再在网上看有无类似的程序,忙得不可开交,好不轻易找到个,编辑器通不过,只是一种错误却半天也找不到,哎,何苦呢,与其如此还不如自己写,挥霍时间,却什么也没学到这个程序我又在网上看,看究竟怎么个写法,写了半天最终还得请隔壁宿舍的同学帮忙调试,大半天弄不好不过,还算是搞出来了,这样简朴的一种程序,却也难倒了我,哎,前路多艰,我将努力学习
七、参照资料数据构造(语言版)清华大学出版社.c
12.数据构造习题集清华大学出版社
3.C++面向对象程序设计西安交大出版社第三次
二、上机实习题目对于十个输入的整形数据进行迅速排序,并按照从小到大的次序输出排序后成果并测试如下数据
(一)、0987654321
(二)、12,23,89,90,78,76,45,34,43,60
(三)、1,123,12,45,876,345,24,37,0,876三组数据
二、有关知识或技术(对应部分)DS
七、C语言,C++的某些基本知识,迅速排序的算法以及应用之类的知识
八、算法及数据构造设计(算法设计)迅速排序中日勺一趟(){int partitionint a[],int low,int highint pivotkey;pivotkey=a[low];whilelowhighwhilelowhigha[high]=pivotkey-high;a[low]=a[high];whilelowhigha[low]=pivotkey++low;a[high]=a[low];aflow]=pivotkey;return low;}迅速排序的递归形式void qsortinta[],int low,int high{int pivotloc;iflowhigh{pivotloc=partitiona,low,high;〃一趟排序成果的I调用qsorta,low,pivotloc-1;qsorta,pivotloc+1,high;}
四、Microsoft vs
6.0
五、源程序带注释或阐明、运行成果数据或屏幕显示、成果分析、讨论Tn#include stdio.h#include stdlib.h”#define N10#include Hiostream.hnint partitioninta[],int low,int high{〃迅速排序中的I一趟intpivotkey;pivotkey=a[low];whilelowhighwhilelowhigha[high]=pivotkey-high;a[low]=a[high];whilelowhigha[low]=pivotkey++low;a[high]=a[low];a[low]=pivotkey;return low;第一次
一、上机实习题目运用链表实现数据的排序,并检测
(一)、
12、、
36.
87、
13、987
(二)、
9、
2、
4、
1.
5、
3.
6、
7、
8、
12、
(三)、
234、
162.
289、
999、
435、90三组数据
二、有关知识或技术(对应部分)DS
三、C++的某些基本知识,以及链表的创立以及应用之类的I知识
四、算法及数据构造设计(算法设计)voidsort(Lnode*L)〃链表中元素按递增排序(Lnode*p,*q,*r,*s;()if L-next!=NULL(P=L-next-next;L-next-next=NULL;)void qsortinta[],int lowjnthigh{〃迅速排序日勺递归形式int pivotloc;iflowhigh{pivotloc=partitiona,kw,high;〃一趟排序成果aJ调用qsorta,low,pi votloc-1;qsorta,pivotloc+1,high;void initinta[]{〃输入要拍的数据int i;cout«请输入将要排序的十个数字”endl;fori=0;iN;i++cin»a[i];}void maininta[N],i;inita;qsorta,0,N;printf(排序后口勺成果\n)fori=1;i=N;i++{〃输出排序后日勺数据printfn%d\a[i-l];ifi%10==0printfn\n\nH;printfn\n\nn;}测试数据
1.输入:0987654321运行成果请输入将要排序的十个数字0987654321排序后的结果0123456789Press anykey to continue
2.输入12,23,89,90,78,76,45,34,43,60运行成果请输入将要排序的十个数字12238990787645344360排序后的结果12233443456076788990Press anykey tocontinue.
3.输入1,123,12,45,876,345,24,37,0,876运行成果睛输入将要排序的十个数字1123124587634524370876解序后的结果10112243745123345876876Press anykey tocontinue
六、上机总结课终于上完了,但这门课还没有结束,除了试验尚有考试,迄今为止,还是很不懂,费了大半天的功夫,也只能做出此类日勺极其简朴的程序,还是多半用的过去的I知识,真是羞愧啊不过总还算是有些收获,至少这个程序所运用时迅速排序还是学会了也只有慢慢来了,前路多艰,也不仅仅是数据构造这门课程,其实好多事情也正如数据构造这门课程,难,不过不得不学,对于计算机的I同学,应当是不得不学会选择了计算机就无可防止的选择了数据构造,选择了人生也就选择了努力与奋斗,这算是这次试验的一点心得吧
七、参照资料数据构造语言版)清华大学出版社.1(C
2.数据构造习题集清华大学出版社
3.C++面向对象程序设计西安交大出版社第四次
三、上机实习题目实现树与二叉树的转化,并测试一组数据
二、有关知识或技术(对应部分)DS
九、c语言,C++日勺某些基本知识,树、二叉树日勺基本知识
十、算法及数据构造设计(算法设计)void ChangeToBinaryNode*pNodeifpLChild==NULLreturn;Node*pL二new NodepLChild-val;pNode-pLeft二pL;pLChild-ChangeToBinarypNode-pLeft;ifpLChild-pRSiblingNode*pR=new NodepLChild-pRSibling-val;pNode-pRight=pR;pLChild-pRSibling-ChangeToBinarypNode-pRight;}
四、Microsoftvs
6.0
五、源程序带注释或阐明、运行成果数据或屏幕显示、成果分析、讨论Tn#include iostreamusingnamespace std;struct Node;struct TreeNode;struct Nodecharval;Node*pLeft;Node*pRight;NodepLeft=NULL;pRight=NULL;}Nodechar chval=ch;pLeft=NULL;pRight=NULL;〜NodeifpLeftpLeft-〜Node;ifpRightpRight-〜Node;delete this;}void Insertcharchifch=valifpRightpRight-Insertch;elseNode*add=new Nodech;pRight=add;elseifpLeftpLeft-Insertch;elseNode*add=new Nodech;pLeft=add;}void Showcout«val«endl;ifpLeftpLeft-Show;ifpRightpRight-Show;};struct TreeNodecharval;TreeNode*pLChild;TreeNode*pRSibling;TreeNodepLChild=NULL;pRSibling=NULL;TreeNodechar chval=ch;pLChild=NULL;pRSibling=NULL;}〜TreeNodeifpLChildpLChild--TreeNode;ifpRSiblingpRSibling--TreeNode;delete this;void Insertcharchifch=valifpRSiblingpRSibling-Insertch;elseTreeNode*pR二new TreeNodech;pRSibling=pR;elseifpLChildpLChild-Insertch;elseTreeNode*pL=new TreeNodech;void Showcout«val«endl;ifpLChildpLChild-Show;ifpRSiblingpRSibling-Show;}void ChangeToBinaryNode*pNodeifpLChild=NULLreturn;Node*pL=new NodepLChild-val;pNode-pLeft二pL;pLChild-ChangeToBinarypNode-pLeft;q=p;p=p-next;r=L;s=L-next;whiless-data.shuju=q-data.shuju{r=s;s=s-next;}r-next=q;q-next=s;}
四、上机环境和使用语言计算机程序实现Microsoft visualC++;使用C++语言
五、源程序带注释或阐明、运行成果数据或屏幕显示、成果分析、讨论Tn#includeiostreamusing namespacestd;Node*pR=new NodepLChild-pRSibling-val;pNode-pRight=pR;pLChild-pRSibling-ChangeToBinarypNode-pRight;;class BinaryTree;class Tree;class Binary Treepublic:Node*root;public:Binary Treeroot二NULL;-BinaryTreeifrootroot-〉〜Node;}void Insertcharchif!rootroot=new Nodech;elseroot-Insertch;}void Showifrootroot-Show;;class Treepublic:TreeNode*root;public:Treeroot二NULL;}〜Treeifrootroot-〉〜TreeN ode;}void Insertcharchif!rootroot=new TreeNodech;elseroot-Insertch;void Showifrootroot-Show;}BinaryTree*ChangeToBinaryOifroot==NULLreturn NULL;BinaryTree*pBT=new BinaryTreeQ;pBT-root=new Noderoot-val;root-ChangeToBinarypBT-root;return pBT;;int mainTreetree1;tree
1.InsertC^1;treel.InsertCe1;treel.InsertT;tree
1.InsertC^1;treel.Insertd;//tree
1.Insert,;//treel.Insertn;//treel.Insert!,;//treel.InsertM;cout«树输出:n«endl;treel.Show;BinaryTree*bTree=tree
1.ChangeToBinaryO;cout«二叉树输出«endl;bTree-Show;return0;}运行成果树输出:e cd3三叉树输出secd fPress anykey tocontinue
六、上机总结四个小时的上机时间,居然没有编出一种像样的程序,最终也只好回去做,并且还得被扣分,其实我是写出来一种的,只是与他人的相比完全可以说是相形见细,完全得靠C语言的I知识一棵树的构造完全的在主程序里,繁琐之极,最重要的是没有一般性,只能就题而言,没措施,只好被扣分实话说今天才是第一次看这部分的内容,可谓是临时抱佛脚啊上课期间就完全同书本脱离了,期末了,也有复习,可还没有看到这里,哎,真可谓是“时运不济”啊不过,终于还是借助着辅导书做出来了由于忘掉了题目,测试只好随便找了几种
七、参照资料数据构造语言版)清华大学出版社.1(C
2.数据构造习题集清华大学出版社
3.C++面向对象程序设计西安交大出版社
4.数据算法大全最终总结与感悟数据构造不易,人生更不易,难的数据构造只是更难的I人生时开始最终衷心地感谢老师struct Dataint shuju;int info;;struct Lnode{Data data;Lnode*next;;Lnode*creat;void sortLnode*L;void printLnode*head;int main{Lnode*L;L=creat;sortL;printL;return0;Lnode*creat〃链表区I创立Lnode*L,*p,*q;L=new Lnode;int i,n;cout〈”请输入该链表日勺长度Wendi;cin»n;cout输入数据项shuju时值”endl;q二L;fori=0;in;i++p=new Lnode;cin»p-data.shuju;q-next=p;q=p;q-〉next=NULL;return L;void sortLnode*L〃链表中元素按递增排序Lnode*p,*q,*r,*s;ifL-next!=NULLp=L-next-next;L-next-next=NULL;}whilepq=p;p=p-next;r=L;s=L-next;whiless-data.shuju=q-data.shujur=s;s=s-next;}r-next=q;q-next=s;void printLnode*L〃递增输出L=L-next;coutvv”递增输出数据日勺值“Vendl;whileL!=NULLcout«L-data.shuju«n H;L=L-next;输入
12.2L34・56・23・
36.
87、
13.987运行成果F输入该链表的长度输入数据项S huju的值1221345623368713987遹增输出key的值1213212334365687987Pressanykeytocontinue输入
9、
2415367、
8、运行成果:输入、
999、
435.90tocontinue运行成果T n加=入n;该链表的长皮前入数据项s Jmju的34
六、上机总结本近来正在学线性表、栈、对列之类,我对这些知识真是陌生,尝试着写了,可总0是调试不过,总会出现大堆的问题有时候没有错误,可也没有运行成果,已经到了最终0的1期62限2了34,28也9只43能5和999老P师re打ss个擦边球,运用此前还算熟悉的链表,也就是线性表做了做编程最为基础,最为常见日勺事情,排序不过,虽说如此但也是有所感悟,线性表大都会用到指针,而用指针则往往会出错,也就是说,学习数据构造,出错是在所难免的并且学习一定要学个清晰,在这里,只要有一丝模糊,就会出错,一定要认真看待
七、参照资料数据构造语言版)清华大学出版社.1(C
2.数据构造习题集清华大学出版社面向对象程序设计西安交大出版社
3.C++一.上机实习题目建立二叉树,并对其进行先序、中序、后序三种不一样的遍历,并测试如下数据
(一)、ab##c###
(二)、abc##de#g##f###
(三)、abc#de##f##i##g#hj###三组数据
二、有关知识或技术(对应部分)DS
五、c语言,C++%某些基本知识,树的j建立、遍历以及应用之类的知识
六、算法及数据构造设计(算法设计)先序遍历void PreOrderBinTreeroot//。
个人认证
优秀文档
获得点赞 0