作业 02 - 解答.doc_第1页
作业 02 - 解答.doc_第2页
作业 02 - 解答.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. 编写一个实现在顺序表中删除给定元素操作的函数:bool sqlist_dele(sq_list &L, elemtp e) int i=0; while(iL.len & L.datai!=e) i+; if(i=L.len) return false; / 表中不存在元素e while(iL.len-1) L.datai=L.datai+1; i+; L.len-; return true;2. 编写一个实现在顺序表中的元素a之前插入元素b操作的函数:bool sqlist_inst(sq_list &L, elemtp a, elemtp b) int i=0, j; while(i=i; j-) L.dataj+1=L.dataj; L.datai=b; return true;3. 编写一个实现在单链表中定位元素a的前驱结点操作的函数(返回前驱结点地址):link_node *linklist_prior(link_node *Hp, elemtp a) while(Hp-next!=NULL & Hp-next-data!=a) Hp=Hp-next; if(Hp-next!=NULL) return Hp; return NULL;4. 运用单向循环链表求解约瑟夫环问题,试编程实现输出出列序列。约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3.n分别表示)围坐一圈。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到所有人全部出列。#include typedef struct node int number; struct node *next; link_node;void main() link_node *R, *p, *q; int n, k, m, i; coutn; coutk; coutm; /* 初始化单向循环单链表 */ i=1; R=new link_node; / 建立第一个结点 R-number=i; i+; p=R; while(inumber=i; i+; p-next=q; p=q; p-next=R; / 使最后一个结点的后继为第一个结点 /*/ /* 定位到编号为k的结点 */ i=1; p=R; while(inext; i+; /*/ while(p-next!=p) / 环中有1个以上结点时 i=1; while(inext; i+; coutnumbernext=p-next

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论