链表中每个结点的data域存放一个二进制位。并在此链表上实现对二进制数加1的运算。 用C语言编写 用以存放输入的二进制数 建立 一个带头结点的线性链表

=0) { p=(LinkList)malloc(sizeof(LNode)); p->data=t%10; p->next=list->next; list->next=p; t=t/10; }}void displaylist(LinkList list){ LinkList p=list->next; while(p) { printf("%d" *LinkList;void InitList(long i #include<stdio.h>#include<stdlib.h>typedef struct LNode{ int data; struct LNode *next;}LNode 如输入:1010101或000111 做很久了 呵呵 list); printf("你输入的数为:/n"); displaylist(list); addone(list); printf("加1后得:/n"); displaylist(list); return 0;} ||| 输入要输入二进制数 i); printf("加1后得:/n1/n"); return 0; } InitList(i &i); if(i==0) { printf("你输入的数为:/n%d/n" p2; //下面这处理全1的情况: while(p) { p1=p; if(p->data==0) break; p=p->next; } if(p==NULL) { LinkList p3=(LinkList)malloc(sizeof(LNode)); p3->data=1; p3->next=NULL; p1->next=p3; return ; } //下面是一般的处理情况: p=list->next; while(p) { p1=p; p=p->next; } if(p1->data+1==1) { p1->data+=1; return ; } else if(p1->data+1==2) { p=list->next; while(p) { if(p->data==0) { p2=p; } p=p->next; } p2->data=1; p=p2->next; while(p) { p->data=0; p=p->next; } return ; }} int main(){ LinkList list; long i; scanf("%ld" p->data); p=p->next; } printf("/n");}void addone(LinkList &list){ LinkList p=list->next; LinkList p1 LinkList &list){ list=(LinkList)malloc(sizeof(LNode)); list->next=0; LinkList p; long t=i; while(t
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值