实验二 基知识综合训练.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基 本 知 识 综 合 训 练 二 班级:信1101-1班 学号姓名:崔 海 营 日期:2012.9.11 基本知识综合训练(二) 一、实验目的与要求 掌握结构体类型变量的定义和使用; 掌握链表的概念,掌握对链表的综合操作操作; 进一步提高程序的设计能力和调试能力 要求:上机前先编制程序并画出程序框图;独立完成实验;独立完成实验报告。 二、实验内容 输入一串字符,以“?”结束,统计各字母出现的次数,并按字母出现的多少输出(先输出字母出现多的,次数相同的按照字母表顺序输出,不出现的不输出)。 解题思路: 建立一个结构体建立循环链表,将数值输入链表中 建立一个结构体 建立循环链表,将数值输入链表中 先让链表运行到第k个数据处 然后进行m的小循环,输出数到m的链表并删除此节点 最后将所有值输出 程序清单: #includeiostream using namespace std; struct people//建立一个结构体 { int num; struct people*next; }; int main() { int n,m,k,i; struct people*head,*p1,*p2; cout请输入总人数:endl;/*输入N,M,K的数值*/ cinn; cout请输入开始人的编号:endl; cink; cout请输入淘汰数字:endl; cinm; head=new struct people;//开辟新单元 head-num=1;//输入第一个数据 p1=head-next=head; for(i=2;i=n;i++)//输入剩下的数据 { p2=new struct people; p2-num=i; p2-next=head; p1-next=p2; p1=p2; } p2=head;//将头指针赋予p2 for(i=1;ik;i++)p2=p2-next;//先运行到开始人的编号 while(p2-next!=p2) { for(i=1;im;i++)//运行到第m-1个人 { p1=p2; p2=p2-next; } coutp2-num ;//输出数到m的人 p1-next=p2-next;//删除已出的链表指针 delete p2; p2=p1-next; } coutp2-numendl;//将最后一个数据输出 return 0; } 运行结果1: 请输入总人数: 8 请输入开始人的编号: 1 请输入淘汰数字: 4 4 8 5 2 1 3 7 6 Press any key to continue 运行结果2: 请输入总人数: 10 请输入开始人的编号: 4 请输入淘汰数字: 12 5 8 2 9 7 1 10 6 4 3 Press any key to continue 2.将一条链表上相邻的二个结点合并成一个结点,即将第一个结点与第二结点合并,将第三个结点与第四个结点合并,……。若链表上的结点个数为奇数,则最后的一个结点不合并,直接作为合并后链表上的最后一个结点。链上结点的数据结构为:stuct node { int data; struct node *next; }; 解题思路: 创建一个结构体利用链表将所需数据输入 创建一个结构体 利用链表将所需数据输入 由头指针开始将两个链表合并, 保留第一个节点释放第二个节点 将新链表输出 程序清单: #includeiostream using namespace std; struct node//创建一个结构体 { int data; struct node*next; }; int main() { int i,data; struct node*p1,*p2,*head; coutplease input number:endl; cindata;//输入数据的数量 coutplease the number of you want to:endl; p1=head=new struct node;//开辟一个新单元 for(i=1;idata;i++)//将数据输入 { cinp1-data; p1=p1-next=new struct node; } cinp1-data;//将最后一个数据输入 p1-next=NULL; cout合并后:endl; p1=head;//将头指针赋予p1 while(p1!=NULL) { p2=p1-next

文档评论(0)

baa89089 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档