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

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

时间:2023-09-11 11:57:03浏览次数:49  
标签:pb 结点 二进制 next 链表 pa

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

标签:pb,结点,二进制,next,链表,pa
From: https://www.cnblogs.com/trmbh12/p/17693149.html

相关文章

  • 例2.7 算法实现带头结点单链表的就地逆置问题。
    1.题目例2.7算法实现带头结点单链表的就地逆置问题。2.算法思想3.代码//就地逆置voidReverseList(LinkListL){Node*p,*q;p=L->next;L->next=NULL;while(p){q=p->next;p->next=L->next;L->next=p;......
  • Icoding 链表 删除范围内结点
    题目:已知线性表中的元素(整数)以值递增有序排列,并以单链表作存储结构。试写一高效算法,删除表中所有大于mink且小于maxk的元素(若表中存在这样的元素),分析你的算法的时间复杂度。链表结点定义如下:struct_lnklist{ElemTypedata;struct_lnklist*next;};typedefstruct......
  • 链表
            ......
  • linux7.X二进制方式安装MySQL5.7.X
    概述系统环境服务器型号VMwareVirtualPlatform操作系统版本RHEL7.6x86_64主机名linuxpg51PubIP192.168.115.51数据库安装版本mysqlVer14.14Distrib5.7.30,forlinux-glibc2.12(x86_64)usingEditLinewrapper安装路径规划[mysql@linuxpg51/]$tree-L1/mysql/mysq......
  • java版本剑指offer:链表中倒数最后k个结点
    java版本剑指offer:链表中倒数最后k个结点描述输入一个链表,输出一个链表,该输出链表包含原链表中从倒数第k个结点至尾节点的全部节点。如果该链表长度小于k,请返回一个长度为0的链表。最简单的方式就是使用两个指针,第一个指针先移动k步,然后第二个指针再从头开始,这个时候这两个指针......
  • java版本剑指offer:反转链表
    java版本剑指offer:反转链表描述输入一个链表,反转链表后,输出新链表的表头。示例1输入:{1,2,3}返回值:{3,2,1}此题想考察的是:如何调整链表指针,来达到反转链表的目的。初始化:3个指针:1)pre指针指向已经反转好的链表的最后一个节点,最开始没有反转,所以指向null2)cur指针指向待反转链表......
  • java剑指offer:两个链表的第一个公共结点
    java剑指offer:两个链表的第一个公共结点描述输入两个无环的单链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)解题思路:先假设链表A头结点与结点8的长度与链表B头结点与结点8的长度相等,那么就可以用双指针。......
  • Java版剑指offer:链表中环的入口结点
    Java版剑指offer:链表中环的入口结点描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。输入描述:输入分为2段,第一段是入环前的链表部分,第二段是链表环的部分,后台将这2个会组装成一个有环或者无环单链表返回值描述:返回链表的环的入口结点即可。而我们后台程序......
  • 链表表示和实现
    链表表示和实现单链表的按值查找#include<stdio.h>#include<stdlib.h>structnode{ intdata; structnode*next;};typedefstructnodeNODE;NODE*create(){ intt; NODE*head,*p,*q; head=(NODE*)malloc(sizeof(NODE)); p=head; while(1){ p......
  • 合并链表
    例2.3有两个链表LA和LB,其元素均为非递减有序排列,编写算法,将它们合并成一个链表LC,要求LC也是非递减有序排列。例如,LA=(2,2,3),LB=(1,3,3,4),则LC=(1,2,2,3,3,3,4)。#include<stdio.h>#include<stdlib.h>#defineMAX100typedefstructNode{intnum;structN......