1 / 138
文档名称:

第3章 数据结构设计.ppt

格式:ppt   页数:138
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第3章 数据结构设计.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

第3章 数据结构设计.ppt

文档介绍

文档介绍:第3章数据结构
1
第3章数据结构
数组
指针
字符串
对象与指针
枚举
共用体
关于声明符的进一步讨论
2
数组
一维数组
二维数组
对象数组
3
一维数组的定义
一维数组(向量)是一种整体定义、个别使用的数据结构。作为一个整体,数组有如下特征:
· 名字:用以对数组各元素的整体标识,这个名字称为数组名;
· 类型:数组各元素的类型;
· 大小:可容纳的数组元素个数(注意,不是字节数);
· 存储:占有一个连续的内存空间。
与简单变量一样,上述特征要用声明语句定义,格式如下:
类型数组名[大小];
4
一维数组的初始化
数组的声明语句是定义性声明,在声明的同时可以对数组各元素初始化,初始化表达式按元素顺序依次写在一对花括号内
C + + 语言还允许使用下列初始化的省略方式
1)初始化时也可以不指定数组的大小,编译器会根据初始值的个数自动决定数组大小
2)允许省略为0的元素值
3)当最后的几个元素初值为0时,可以只写出前面的数列,但数组体积不可省略
5
数组元素
作为数组的个体,数组中的每个元素都有如下特征:
它们的类型是相同的
每个元素用数组名加上括在方括号中的下标表示。下标表示该元素在数组中的顺序,下标以0为起始计数
6
模拟洗扑克牌
基本思路是:将54张扑克牌统一编号为:0,1,2,……,52,53,然后随机地从中一一抽取一张牌,并依次放起,形成新的序列。具体要解决两个问题:如何存储54张扑克牌以及在此基础上如何一一抽取
随机抽牌算法
在0到53之间产生一个随机数r,将pk[0]与pk[r]交换
7
类结构
#include <>
#include <>
int pk[qqchyan1][] = { 501,502, 101,102,103,104,105,106,107,108,109,110,111,112,113, 201,202,203,204,205,206,207,208,209,210,211,212,213, 301,302,303,304,305,306,307,308,309,310,311,312,313, 401,402,403,404,405,406,407,408,409,410,411,412,413};
class Pack
{ public:
void makePackOnce();
};
void Pack::makePackOnce()
{
int temp,r;
for(int i = 0; i < 53; i ++) // 洗一次牌
{
r= int(float(53 - i) * rand() / RAND_MAX) + i; temp = pk[i];
pk[i] = pk[r];
pk[r] = temp;
cout << pk[i] << ","; // 打印洗好的牌
}
cout << pk[i] << endl; // 打印洗好的最后一张牌
}
8
多次洗牌程序
void Pack::makePackAny()
{
int temp,r,times;
cout << "\nTimes for take the pack is:";
cin >> times; // 输入拟洗牌次数
cout << endl;
for(int j =1; j <= times; j ++) // 洗times次牌
{
cout << "Time: " << j <<endl;
for(int i = 0; i < 53; i ++) //一次洗牌
{r= int(float(53 - i) * rand() / RAND_MAX) + i;
temp = pk[i];
k[i] = pk[r];
pk[r] = temp;
cout << pk[i] << ",";
}
cout << pk[i] << endl;
}
}
9
动态地改变随机数序列起点
void Pack::makePackAny()
{
int temp,r,times;
cout << "\nTimes for take the pack is:";
cin >> times; // 输入拟洗牌次数
cout << endl;
srand(time(NULL)); // 用时间函数设置随机数序列的起点
for(int j =1; j <= times; j ++) // times次洗牌
{
for(int i = 0; i < 53; i ++) // 其中的一次洗牌
{
r= int(float(53 - i) * rand()

最近更新

2023年天津渤海职业技术学院单招职业倾向性测.. 40页

2023年天津艺术职业学院单招职业技能测试模拟.. 40页

2023年太原旅游职业学院单招职业技能考试模拟.. 41页

2023年宁夏吴忠市单招职业适应性考试题库新版.. 39页

2023年宁夏财经职业技术学院单招职业倾向性测.. 40页

2023年宁波大学科学技术学院单招职业适应性测.. 39页

2026年儿童朗诵诗歌有名作品 5页

2023年安徽冶金科技职业学院单招职业技能测试.. 40页

2023年安徽城市管理职业学院单招职业技能测试.. 40页

2026年儒雅好听的姓徐男孩名字 6页

2023年安徽汽车职业技术学院单招职业适应性考.. 40页

2023年安徽省巢湖市单招职业适应性测试题库带.. 40页

2023年安顺职业技术学院单招职业倾向性考试题.. 40页

2023年宿迁泽达职业技术学院单招职业倾向性考.. 41页

2023年山东劳动职业技术学院单招职业适应性考.. 38页

2023年山东外事职业大学单招职业技能考试模拟.. 41页

2023年广东省湛江市单招职业倾向性考试题库及.. 40页

2026年倡议书作文200字 6页

2026年借款合同的印花税怎么算 4页

2023年浙江工商职业技术学院单招职业技能考试.. 41页

2023年渤海理工职业学院单招职业技能考试题库.. 39页

2026年保育老师个人职责 16页

2023年福建省福州市单招职业倾向性考试题库必.. 41页

2023年西昌民族幼儿师范高等专科学校单招职业.. 38页

2026年保护环境的建议书初中生 7页

2026年保护环境倡议书范文 19页

2026年保护植物小常识有哪些 3页

2023年黑龙江农业经济职业学院单招职业技能考.. 41页

2024年三峡旅游职业技术学院单招职业倾向性考.. 39页

2025年国家开放大学《建筑力学》章节测试参考.. 13页