C++ 动态数据结构(二)
2014-12-27 09:48
176 查看
1.单链表结点定义的格式:
struct Link
{
type data;
struct Link *next;
};
虽然单链表插入、删除方便,不需要移动其他结点的优点,但是它也有一些缺点:
只能顺序访问,一旦断链就会丢失其中的数据,所以要注意一下。
2.单链表的遍历
遍历就是逐个访问每个数据元素的过程。遍历是各种其他操作的基础。
遍历的关键是指针的在链表结点之间的移动。
遍历中“访问”结点数据的含义非常广泛,可以是打印,也可以是比较等其它操作。
3.单链表的输出
(1)所谓单链表的输出,就是将链表的各个结点的数据输出。
(2)具体做法为:令指针 p 指向链表的头结点,输出其数据,然后使 p 指向链表的下一个结点,再输出,直到链表的末尾为止。
核心代码:
p = head;
printf( "%5d",p->data );
p = p->next;
具体代码:
#include <stdio.h>
void PrintList(struct Link *head)
{
struct Link *p;
int i = 1;
p = head;
while ( p != NULL ) {
printf("%5d%d ", i, p->data);
p = p->next;
i ++;
}
void main()
{
struct Link a={12}, b={35}, c={43};
struct Link *head;
a.next = &b;
b.next = &c;
c.next = NULL;
head = &a;
PrintList(head);
}
struct Link
{
type data;
struct Link *next;
};
虽然单链表插入、删除方便,不需要移动其他结点的优点,但是它也有一些缺点:
只能顺序访问,一旦断链就会丢失其中的数据,所以要注意一下。
2.单链表的遍历
遍历就是逐个访问每个数据元素的过程。遍历是各种其他操作的基础。
遍历的关键是指针的在链表结点之间的移动。
遍历中“访问”结点数据的含义非常广泛,可以是打印,也可以是比较等其它操作。
3.单链表的输出
(1)所谓单链表的输出,就是将链表的各个结点的数据输出。
(2)具体做法为:令指针 p 指向链表的头结点,输出其数据,然后使 p 指向链表的下一个结点,再输出,直到链表的末尾为止。
核心代码:
p = head;
printf( "%5d",p->data );
p = p->next;
具体代码:
#include <stdio.h>
void PrintList(struct Link *head)
{
struct Link *p;
int i = 1;
p = head;
while ( p != NULL ) {
printf("%5d%d ", i, p->data);
p = p->next;
i ++;
}
void main()
{
struct Link a={12}, b={35}, c={43};
struct Link *head;
a.next = &b;
b.next = &c;
c.next = NULL;
head = &a;
PrintList(head);
}
相关文章推荐
- C++ 动态数据结构(一)
- C++ 动态数据结构(四)
- c++代码之-------动态数据结构
- C++ 动态数据结构(三)
- C++ 动态数据结构(五)
- [FAQ] 数据结构用 C 和 C++ 描述有什么区别
- C#调用C++动态链接库中的函数指针与函数指针结构
- 打造 C++ 最灵活动态数组结构 (一)
- 打造 C++ 最灵活动态数组结构 (二)
- 再看C、C++、数据结构(二)
- 数据结构之顺序表C++实现
- C++数据结构——堆,二叉搜索树及Huffman编码输出
- 在SQL Server中动态修改数据表结构
- Flex 和C++ 之间传输结构体数据--用XML传输
- 数据结构与算法(C++)之一——顺序表(SeqList)
- 最近学习C++ 数据结构 尝试代码就放上来吧 初学者适用
- (摘)面向对象c++数据结构之基本数据结构-链表-使用链表管理器(连载中)
- 数据对象结构的动态建立与访问
- SQL Server数据对象结构的动态建立与访问
- 动态使用结构数据大小