c++课件-结构与链表.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《c++课件-结构与链表.ppt》由会员分享,可在线阅读,更多相关《c++课件-结构与链表.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、26.1 6.1 结构类型结构类型 6.1.1 结构类型说明结构类型说明说明结说明结构类型构类型的关键字的关键字 struct 结构类型标识符结构类型标识符 结构成员结构成员1;1; 结构成员结构成员2;2;结构成员结构成员n;n;类型可任意类型可任意(不能为该结构自身)(不能为该结构自身) C语言提供了这样一种数据结构:它将不同类型的数据组合成一个有机的整体结构体。3struct date int month; int day; int year; struct man char name15; char sex; int age; date birthday;如,说明一个结构类型如,说明一
2、个结构类型datedate,含三个整型数据成员,含三个整型数据成员在此基础上,又在此基础上,又可说明另一个结可说明另一个结构类型构类型manmanbirthdayNamesexagemonthdayyear struct man结构类型46.1.2 6.1.2 结构变量定义及初始化结构变量定义及初始化先说明结构类型再定义结构变量先说明结构类型再定义结构变量在说明结构数据类型的同时定义结构变量在说明结构数据类型的同时定义结构变量省略结构标识符直接定义结构类型变量省略结构标识符直接定义结构类型变量struct man man1, man2;struct man char name15;char s
3、ex;int age; struct date birthday; man1, man2;struct char name15;char sex;int age; struct date birthday; man1, man2;无类型名变量无类型名变量5 struct goods /定义一个商品结构类型定义一个商品结构类型 char bh6; /商品编号商品编号 char mc20; /商品名称商品名称 float dj; /商品单价商品单价 int sl; /商品数量商品数量 char jhrq8; /进货日期进货日期g1=10012, shoes, 124,100, 080912;结构变
4、量也允许在定义的同时给出初值,即初始化。如: struct person char name15; char sex; int age; s10 =Fang Min,F,24, Fang Hua,M,35;定义一个结构数组并对其部分元素初始化。66.1.3 6.1.3 结构变量的访问结构变量的访问访问形式:访问形式: 结构变量名结构变量名. .成员名成员名( (* *指向结构的指针指向结构的指针).).成员名成员名 指向结构的指针指向结构的指针-成员名成员名或或或或通过指向结构的指针引用结构变量成员通过指向结构的指针引用结构变量成员成员访问运算符成员访问运算符优先级最高的优先级最高的四个运算符
5、之一四个运算符之一 括号不能少括号不能少如,假设有定义如,假设有定义man m,*p=&m; strcpy (m.name, Fang Min);p-birthday.month = 8; 则可如下引用结构成员则可如下引用结构成员7【例6.1】某商场周年店庆期间对其会员进行积分换购活动,活动内容为允许每天前五名光临的会员用其积分换购相应的商品,假设每100个积分可以换购5元的商品,编程序求该商场店庆期间每天换购出去的商品金额以及会员换购后的剩余积分值。假设会员将全部可能积分全部进行换购。 分析:可以将会员卡号和积分组合在一起定义一个结构类型,用结构数组来描述若干会员的信息。如, struct
6、card char num10; int score; c10;8#include iostream.h#define N 5void main( ) struct card char num10; int score; cN; int i,s=0; for(i=0;ici.numci.score; s=s+5*(ci.score/100); /每100分换购5元商品 ci.score=ci.score-100*(ci.score/100); /该会员的剩余积分 cout扣除积分后:n; for(i=0;iN;i+)coutci.numtci.scoreendl; cout积分换购金额=sda
7、ta=10;q=new node;q-data=20;NULLq-next=NULLp-next=q;206.2.2 6.2.2 链表的建立链表的建立【例6.3】创建一个含有n个结点的、包含一个数据域,且其类型为整型的单链表。链表的建立过程如下:首先设置head为NULL,即建立一个空的链表。申请一个新结点存储区域,让newnode指向该结点,然后向其数据域输入数据。把newnode所指向的结点插入到链表中。如果当前链表是空表,newnode所指向的结点应该成为该链表中唯一的一个结点,故head和tail都应该指向该结点。21如果当前链表非空,则newnode所指向的结点应该做为链表中的最后一
8、个结点加入到链表中,故应该将其插在tail指向的结点后面。 重复执行第2、3步共n次。 将最后一个结点的next域置空(NULL)。22#include iostream.hstruct node int data; struct node *next;struct node *create(int n ) struct node *head = NULL; struct node *tail,*newnode; int x; for (int i=0; ix; newnode= ; /为newnode申请存放空间newnode-data=x;new node也可用如下语句newnode=(
9、struct node *) malloc(sizeof( struct node);23 if(head=NULL) ; /newnode成为空表的第一个结点 else ;/将newnode连接到原来的表尾 ; / newnode成为新的表尾 tail-next=NULL; return(head);void main( ) struct node *head; int n; coutn; head = create(n);head=newnodetail-next=newnodetail = newnode246.2.3 6.2.3 单链表的基本操作单链表的基本操作1、链表的遍历 由于链表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课件 结构
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内