还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据结构-顺序串基本操作实验报告实验一线性表实验目的在于帮助学生熟练掌握线性表的基本操作在两种存储结构上的实现,其中以各种链表的操作和应用为重点内容实验题目.顺序表逆置算法..1单链表的逆置算法.
2..顺序表逆置算法..1//——结构的定义及宏定义—#includeiostream#includestdio.h#includemalloc.h#defineERROR0#defineOK1#defineOVERFLOW-2#defineLIST_INIT_SIZE100#defineLISTINCREMENT10usingnamespace std;ty pedefintElemTy pe;typedefstruct//----------初始化栈--------------Status InitStackSqStackS//-------------压栈-----------------Status PushSqStackS,SElemType e//------------------出栈--------------------Status PopSqStackS,SElemType*e//-------------取栈顶元素-------------------Status GetTopSqStackS,SElemType*e//--------括号区配-------------------int pairchar*s//-------------回文-------------------------int Ishuiwenchar*s//--------------主函数--------------int main实验三二叉树与树实验目的掌握二叉树的性质,二叉树的遍历,二叉树的线索化及构造赫夫曼树二叉树上各种算法特别是递归算法的设计实验题目、用先序方法建立一棵二叉树.二叉链表算法.
1、先,中,后序遍历二叉树算法2算法参考答案//——结构定义及宏定义---------------#include Hstdio.h#include nmalloc.htypedef struct BiTNode{char data;structBiTNode*lchild,*rchild;}BiTNode,*BiTree;//------建立二叉树-----------------BiTree CreateBiTreeQ//-----先序遍历----------------void PreOrderBiTree T//——中序遍历---------------void InOrderBiTreeT//-----后序遍历----------------void LastOrderBiTreeT//------主函数---------------int main实验四查找实验目的掌握静态查找表,动态查找表,及哈希表查找.实验题目折半查找算法.算法参考答案--------------折半查找算法一intbinseachint a[]jnt data---------主函数---------------main〃验证部分实验五内部排序实验目的掌握各种排序方法.实验题目快速排序算法.
1.堆排序算法.
2.算法参考答案堆排序算法.
1.——结构定义及宏定义-----------------------#include stdio.h#define MAXSIZE20typedef struct{int elemword[MAXSIZE];int length;}SqList;void InitialSqList;void HeapSortQ;void HeapAdjust;void PrintSqList;------------初始化顺序表-------------------void InitialSqListSqList*L--------------堆排序------------------void HeapSortSqList*Lvoid HeapAdjustSqList*H,int s,int m---------输出顺序表--------------void PrintSqListSqList*L---------------主函数---------main〃验证部分快速排序算法.
2.------------结构定义及宏定义--------------#include stdio.h#define MAXSIZE20typedef struct{int elemword[MAXSIZE];int count;}SqList;——初始化顺序表-------------------快排算法void InitialSqListSqList*LvoidQuickSortSqList*Lvoid QSortSqList*L,int low,int highint PartitionSqList*L,int lowjnthigh——输出顺序表------------------void PrintSqListSqList*L--------------主函数----------------------main〃验证部分注同学们一定按要求完成上面的实验,认真完成实验的验证部分,并按照报告的格式填好实验报告ElemType*elem;int length;int listsize;JSqlist;typedefintStatus;〃-----初始化顺序表---------〃加是会改Status InitListSqlist L变顺序表,不加则不会改变L.elem=ElemType*mallocLIST_INIT_SIZE*sizeofElemType;//if!L-elemexitO VERFLOWL.length=0;L.listsize=LIST INITSIZE;returnOK;//-------顺序表的插入--------------Status ListInsert_SqSqlist L,inti,ElemTypeeElemType*newbase,*q,*p;ifil||iL.length+1returnERROR;if L.length=L.listsize二newbase ElemType*reallocL.elem,L.listsize+LISTINCREMENT*sizeofElemType;//if!newbaseexitOVERFLOW二L.elem newbase;L.listsize+=LISTINCREMENT;q=L.elem[i-1];for p=L.elem[L.length-1];p=q;—p二*p+1*p;*q=e;++L.length;returnOK;//-------顺序表的转置反过来-------------------------Status revSqlistLElemType temp;for inti=0;iL.length/2;i++temp=L.elemfi];L.elem[i]=L.elem[L.length-1-i];L.elem[L.length-1-i]=temp;returnOK;//--------顺序表的输出--------------------Status OutputSqlistLcout«endl;〃调试查看//«L.length;当前表中元素个数for inti=0;iL.length;i++cout«L.elem[i];returnOK;主函数int mainQinti,e;SqlistL;InitListL;for i=1;i10;i++cin»e;ListInsert_SqL,i,e;OutputL;revL;OutputL;systemnpausen;return0;单链表的逆置算法.
2.#includeiostream#includemalloc.h#includenstdio.hn#defineNULL0#defineERROR0#defineOK1usingnamespace std;ty pedefintElemType;typedefintStatus;typedefstructLNodeElemType data;structLNode*next;}LNode,*LinkList;//——建立单链表--------------------LinkList CreateList_LintnLinkList L,p;L=LinkListmallocsizeofLNode;L-next=NULL;for inti=n;i0;—ip=LinkListmallocsizeofLNode;cin»p-data;p-next=L-next;L-next=p;return L;//——单链表的转置-----------Status revLinkListLLinkList P,Q;二P L-next;if L-nextP-nextQ=P-next;P-next=NULL;for;Q;P=Q;Q=Q-next;P-next=L-next;L-next=P;returnOK;//-----------顺序表遍历输出一Status OutputLinkListL二LinkList PL-next;cout«,\n,;for;P;P=P-nextcout«P-data«!\t;returnOK;//--------主函数-----------int mainLinkListL;L=CreateList_L10;OutputL;revL;OutputL;systemnpausen;实验二栈与队列实验目的使学生深入了解栈与队列的特性,以便在实际背景下灵活运用他们,同时还将巩固这两种结构的构造方法实验题目、检测表达式中{},口,扩号匹配算法.
1、检测字符串是否回文的算法2算法参考答案#include nstdio.h#include nstring.h#include nmalloc.h#define STACK_INIT_SIZE30#define STACKINCREMENT10#define OK1#define ERROR0#define OVERFLOW-2typedef intStatus;typedef charSElemType;typedef struct{SElemType*base;SElemType*top;int stacksize;}SqStack;。
个人认证
优秀文档
获得点赞 0