约瑟夫环图书馆据库.docVIP

  • 4
  • 0
  • 约1.67万字
  • 约 25页
  • 2018-06-26 发布于福建
  • 举报
约瑟夫环图书馆据库

设计题目class Node { T hao; T data; NodeT *next; friend class yuesefuT; }; (2)将相关数据结构放入类里进行定义 定义如下: class yuesefu { public: yuesefu( ){first=new NodeT;first-next=first; } yuesefu(T a[ ], int n); ~yuesefu( ); void Printlist( ); void chazhao(int n); private: NodeT *first; }; (3)每种算法的实现 以下是实现建立链表的算法: 用尾插法建立链表,为了让数据正序存放 yuesefuT:: yuesefu(T a[ ], int n) { int j=1; first=new NodeT ; NodeT *rear=first,*s; for (int i=0; in; i++) { s=new NodeT ; //建立新节点 s-data=a[i]; //尾插法插入数据 s-hao=j; j++; rear-next=s; rear=s; } rear-next=first; } 程序结束之前释放所建立的结点空间 template class T yuesefuT:: ~yuesefu( ) { NodeT *p,*q; p=first-next; while (p!=first) { q=p; p=p-next; delete q; } delete first; } 显示运行的结果 template class T void yuesefuT::Printlist( ) { NodeT *p; p=first-next; while (p!=first) { coutp-data\t; p=p-next; } coutendl; } 根据要求查找密码,记录编号直到循环结束找出所有密码的编号 template class T void yuesefuT::chazhao(int n) { NodeT *p,*r; p=first-next; int j; int x=20; while(p-next!=first)p=p-next; p-next=first-next;//尾指针与头节点连接形成单循环链表 first=first-next;//删除不带数据的头结点 for(int i=1;in;i++) { j=1; while(jx) { r=first; first=first-next; j++; //查找到第X个节点 } r-next=first-next;//摘连,把第r个结点接到first的下一个结点 x=first-data; coutfirst-hao\t;//输出第x个结点的数据域 delete first;//删除第x个结点 first=r-next;//连接成一个单循环链 } coutfirst-haoendl; } 4、详细设计 #includeiostream.h template class T class yuesefu; template class T class Node { T hao; T data; NodeT *next; friend class yuesefuT; }; template class T class yuesefu { public: yuesefu( ){first=new NodeT;first-next=first; } yuesefu(T a[ ], int n); ~yuesefu( ); void Printlist( ); void chazhao(int n); private: NodeT *first; }; template cl

文档评论(0)

1亿VIP精品文档

相关文档