资源描述:
《数据结构题库》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、4-1单链表逆转(20分)木题要求实现一个函数,将给定的单链表逆转。函数接口定义:ListReverse(ListL);其中List结构定义如下:typedefstructNode*PtrToNode;structNode{ElementTypeData;/*存储结点数据*/PtrToNodeNext;/*指向下一个结点的指针*/};typedefPtrToNodeList;/*定义单链表类型*/L是给定单链表,函数Reverse要返回被逆转后的链表。裁判测试程序样例:#include#includetyp
2、edefintElementType;typedefstructNode*PtrToNode;structNode{ElementTypeData;PtrToNodeNext;};typedefPtrToNodeList;ListRead();/*细Yi在此不表*/voidPrint(ListL);/*细节在此不表*/ListReverse(ListL);intmain(){ListLI,L2;LI=Read();L2=Reverse(Ll);Print(Ll);Print(L2);return0;}/*你的代码将被嵌在这ffl*/输入样例:5
3、13452输出样例:1254314-2顺序表操作集(20分)本题要求实现顺序表的操作集。函数接口定义:ListMakeEmpty();PositionFind(ListL,ElementTypeX);boolInsert(ListL?ElementTypePositionP);boolDelete(ListL,PositionP);其中List结构定义如下:typedefintPosition;typedefstructLNode*List;structLNode{ElementTypeData[MAXSIZE];PositionLast;/*
4、保存线性表中®后一个元素的位置*/各个操作函数的定义为:ListMakeEmpty():创违并返回一■个空的线性表;PositionFind(ListL,ElementTypeX):返回线性表中X的位置。若找不到则返回ERROR;boolInsert(ListL,ElementTypeX,PositionP):X插入在{立置P并返冋true。若空间已满,则打印“FULL”并返回false;如果参数P指向非法位置,则打印“ILLEGALPOSITION”并返回false;boolDelete(ListL,PositionP):将位置P的元素删除并
5、返回true。若参数P指向非法位罝,则打印“H)SITI0NPEMPTY”(其中P是参数值)并返回false。裁判测试程序样例:#include#include#defineMAXSIZE5#defineERROR-1typedefenum{false,true}bool;typedefintElementType;typedefintPosition;typedefstructLNode*List;structLNode{ElementTypeData[MAXSIZE];PositionLast;/*保存
6、线性表中最后一个元萦的位置*/ListMakeEmpty();PositionFind(ListL,ElementTypeX);boolInsert(ListElementTypeX,PositionP);boolDelete(ListPositionP);intmain(){ListL;ElementTypeX;PositionP;intN;L=MakeEmpty();scanf("%d",&N);while(N--){scanf("%d&X);if(Insert(L,X,0)==false)printf(HInsertionError:%
7、disnotinAn'X);}scanf("%d",&N);while(N--){scanf(’’%d”,&X);P=Find(L,X);if(P==ERROR)printf("FindingError:%disnotin.”,X);elseprintf(H%disatposition%d.",X)P);}scanf("%d",&N);while(N--){scanf("%dn,&P);if(Delete(L,P)==false)printf("DeletionError.");if(Insert(L,0,p)==false)pr
8、intf(f,InsertionError:0isnotin.");}return0;}/*你的代码将被嵌在这里*/输入样例:6123456365