C++ 动态数据结构(二)

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); 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北顾丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值