=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
链表中每个结点的data域存放一个二进制位。并在此链表上实现对二进制数加1的运算。 用C语言编写 用以存放输入的二进制数 建立 一个带头结点的线性链表
最新推荐文章于 2020-04-23 19:07:03 发布