您的位置:首页 > 理论基础 > 数据结构算法

c++ 数据结构 链表

2015-11-30 10:57 316 查看

1.建立链表

建立链表的步骤是:
先写一个结构体类型,明确你这个链表都需要哪些东西。
比如:
struct List
{
List * p; // 指针,记录子节点的位置
int value; // 数据成员,存放数据的变量
};

然后就可以建立链表了。
List * head; // 首先申明一个头指针,记录链表的首地址,类似数组的首地址
List * temp; // 一个临时变量,之后你会知道他的作用
head = new List; // 然后就新建一个链节,用new来建立
head->p = NULL; // 把不需要的指针NULL是好习惯
head->value = 0; // 记录该节点的数据
这样就完成了一个链表的第一个链节的建立。

之后的建立完全类似:
head->p = new List; // 再新建一个节点
temp = head->p; // 让临时指针指向这个新建的节点,以后的操作就可以用temp完成了
temp->p = NULL; // 尾指针赋值为NULL
temp->value = 1; // 记录该节点的数据。

就是这样,每个节点里面都有一个指针指向下一个节点,最后一个节点的指针(尾指针)是NULL,意味着链表的结束。

链表建立之后,你就可以从首节点一个一个找,直到找到你想找的节点了。
短距离可以:
head->p->p->……->value;
很长的话就再用一个临时变量中转一下吧。
具体代码可参考:http://wenku.baidu.com/link?url=gOAwSbnbSL2kkpb5SBOU7HkELjBJ5CxyYmywzu7f5POeTfYS_8p6DDrWTC9TVLj9M2HEkGk00iW_odlSwQbm8YsS0GAtd4xQEJBK3tSxAr_
->:如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.
head=(Node*)malloc(sizeof(Node)):先用sizeof取出结构体中的Node的大小,在用malloc申请分配出这么大小的内存,并把首地址赋值给head中
malloc只管分配内存,并不能对所得的内存进行初始化,所以得到的一片新内存中,其值将是随机的
& 表示取内存地址。&a表示取a的内存地址
编译的时候报错“Cannot open include file: 'iostream.h': No such file or directory”。需要加入这个语句,using namespace std; 不然编译器报错
需要iostream.h支持
cout<<" "表示在程序运行时在那个黑框子显示出你" "内的你所键入的内容。
cin>>a;键盘读入数据赋值给a;
c++中的setw(n)是设置域宽。就是你的输出要占多少个字符  
2.MFC:1.CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL ); http://baike.baidu.com/link?url=uxnqAUQZADpGm63tToQK3w8ooRA8lr7X9a36DOhUPQbDcWGxdgKmWLq0rnWbDDvRvRws8gmPLJMy9AfzCZVHN_#6 2.LIST CONTRol: http://blog.csdn.net/j6915819/article/details/8135220  http://bbs.csdn.net/topics/390013761  http://bbs.csdn.net/topics/390774819  http://blog.csdn.net/snsn1984/article/details/5388334  重要!!3.从TXT读到LIST CONTROL: http://bbs.csdn.net/topics/390013761  http://baike.baidu.com/link?url=Av6C9TisloKFOSCumoXrexRTH-zVaWxMOlT8rKH5ukxMJBjMz2r8TxCA3kdCuyQ1ZBGTDhcljUtNEm_uviezfK 
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: