欢迎来到天天文库
浏览记录
ID:19445971
大小:198.00 KB
页数:18页
时间:2018-10-02
《通讯录的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、补充复习知识一、链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。指针作为维系结点的纽带,可以通过它实现链式存储。假设有五个学生某一门功课的成绩分别为A、B、C、D和E,这五个数据在内存中的存储单元地址分别为1248、1488、1366、1022和1520,其链表结构如图5.4所示。图5.4单链表示意图链表有一个“头指针”变量,图5.4中以head表示,它存放一个地址
2、,该地址指向链表中第一个结点,第一个结点又指向第二个结点……直到最后一个结点。该结点不再指向其他结点,它称为“表尾”,它的地址部分存放一个“NULL”(表示“空地址”),链表到此结束。链表中每个结点都包括两个部分:用户需要用的实际数据和下一个结点的地址。可以看到链表中各结点在内存中可以不是连续存放的。要找到某一结点C,必须先找到其上一个结点B,根据结点B提供的下一个结点地址才能找到C。链表有一个“头指针”,因此通过“头指针”可以按顺序往下找到链表中的任一结点,如果不提供“头指针”,则整个链表都无法访问。链表如同一条铁链一样,一环扣一环,中间是不能断开的。打个比方,幼儿园的老师带领孩
3、子出来散步,老师(作为头指针)牵着第一个小孩的手,第一个小孩的另一只手牵着第二个孩子……这就是一个“链”,最后一个孩子有一只手空着,他是“链尾”。要找这个队伍,必须先找到老师,然后按顺序找到每一个孩子。图5.4的链表每个结点中只有一个指向后继结点的指针,该链表称为单链表。其实结点中可以有不止一个用于链接其他结点的指针。如果每个结点中有两个用于链接其他结点的指针,一个指向前趋结点(称前趋指针),另一个指向后继结点(称后继指针),则构成双向链表。双向链表如图5.5所示。图5.5双向链表示意图链表的一个重要特点是插入、删除操作灵活方便,不需移动结点,只需改变结点中指针域的值即可。而数组由
4、于用存储单元的邻接性体现数组中元素的逻辑顺序关系,因此对数组进行插入和删除运算时,可能需要移动大量的元素,以保持这种物理和逻辑的一致性。如数组中有m个元素,往第i(i5、删除结点•清空链表结合程序来进行学习!二、“打开”对话框和“保存”对话框的设计及其实现1、CFileDialog类(1)派生层次关系(2)构造函数CFileDialog(BOOLbOpenFileDialog,LPCTSTRlpszDefExt=NULL,LPCTSTRlpszFileName=NULL,DWORDdwFlags=OFN_HIDEREADONLY6、OFN_OVERWRITEPROMPT,LPCTSTRlpszFilter=NULL,CWnd*pParentWnd=NULL);参数1:BOOLbOpenFileDialogTRUE——构建“打开”对话框;FALSE——7、构建“保存”对话框;参数2:LPCTSTRlpszDefExt=NULL指定默认的扩展文件名(如:“txt”);为NULL时,没有扩展名。参数3:LPCTSTRlpszFileName=NULL指定对话框中的文件对话框中的“初始文件名”;为NULL时,没有文件名。参数4:DWORDdwFlags=OFN_HIDEREADONLY8、OFN_OVERWRITEPROMPT定制对话框的一个或多个标记的组合。OFN_HIDEREADONLY隐藏只读标记;OFN_OVERWRITEPROMPT保存文件时出现是否覆盖对话框。参数5:LPCTSTRlpszFilter=NULL指定一个或一组文件9、过滤器。如"TextFiles(*.txt)10、*.TXT11、"参数6:CWnd*pParentWnd=NULL例:1、“打开”对话框CFileDialogxfile(TRUE,"TXT",NULL,OFN_HIDEREADONLY12、OFN_OVERWRITEPROMPT,"TextFiles(*.txt)13、*.TXT14、",this);Xfile.m_ofn.lpstrTitle=”打开指定的通讯录文件”;2、“保存”对话框CFileDialogxfile(FALSE,"
5、删除结点•清空链表结合程序来进行学习!二、“打开”对话框和“保存”对话框的设计及其实现1、CFileDialog类(1)派生层次关系(2)构造函数CFileDialog(BOOLbOpenFileDialog,LPCTSTRlpszDefExt=NULL,LPCTSTRlpszFileName=NULL,DWORDdwFlags=OFN_HIDEREADONLY
6、OFN_OVERWRITEPROMPT,LPCTSTRlpszFilter=NULL,CWnd*pParentWnd=NULL);参数1:BOOLbOpenFileDialogTRUE——构建“打开”对话框;FALSE——
7、构建“保存”对话框;参数2:LPCTSTRlpszDefExt=NULL指定默认的扩展文件名(如:“txt”);为NULL时,没有扩展名。参数3:LPCTSTRlpszFileName=NULL指定对话框中的文件对话框中的“初始文件名”;为NULL时,没有文件名。参数4:DWORDdwFlags=OFN_HIDEREADONLY
8、OFN_OVERWRITEPROMPT定制对话框的一个或多个标记的组合。OFN_HIDEREADONLY隐藏只读标记;OFN_OVERWRITEPROMPT保存文件时出现是否覆盖对话框。参数5:LPCTSTRlpszFilter=NULL指定一个或一组文件
9、过滤器。如"TextFiles(*.txt)
10、*.TXT
11、"参数6:CWnd*pParentWnd=NULL例:1、“打开”对话框CFileDialogxfile(TRUE,"TXT",NULL,OFN_HIDEREADONLY
12、OFN_OVERWRITEPROMPT,"TextFiles(*.txt)
13、*.TXT
14、",this);Xfile.m_ofn.lpstrTitle=”打开指定的通讯录文件”;2、“保存”对话框CFileDialogxfile(FALSE,"
此文档下载收益归作者所有