例2.9 建立一个带头结点的线性链表,用以存放输人的二进制数,链表中每个结点的data域存放一个二进制位。并在此链表上实现对二进制数加1的运算。

1.题目

例2.9建立一个带头结点的线性链表,用以存放输人的二进制数,链表中每个结点的data域存放一个二进制位。并在此链表上实现对二进制数加1的运算。

2.算法分析

3.代码

/* 二进制加1 */
void BinAdd(LinkList l) {
    int temp;
    Node *pa = l->next, *pb, *s;
    while (pa) {
        if (pa->num == 0) pb = pa;
        pa = pa->next;
    }
    if (pb) {
        pb->num = 1;
        pb = pb->next;
        while (pb) {
            pb->num = 0;
            pb = pb->next;
        }
    } else {
        s = (Node *) malloc(sizeof(Node));
        s->num = 1;
        s->next = l->next;
        l->next = s;
    }
}

posted @   DawnTraveler  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示