資料結構長整數

2021-06-28 09:48:30 字數 3374 閱讀 6363

#include

using namespace std;

#include

#define ok 1;

#define false 0;

typedef struct lnodelnode,*lnodelist;

int compare(lnodelist &ahead,lnodelist &bhead,int &q)//比較a和b的大小

while(pb!=bhead)

if(acount>bcount)q=1;

else if(acount

else//a,b節點個數相同時

//分別比較每個節點的大小

if(pa->data>pb->data)q=1; 

else if(pa->datadata)q=-1;

else q=0;

}return 0;

}int inputa(lnodelist &ahead)//輸入長整數a

else ahead->data=1;

p=new lnode;

p->data=afirst;

p->next=ahead;

ahead->prior=p;

ahead->next=p;

p->prior=ahead; 

while(ch!=';')

return ok;

}int inputb(lnodelist &bhead)//輸入長整數b

else bhead->data=1;

p=new lnode;

p->data=bfirst;

p->next=bhead;

bhead->prior=p;

bhead->next=p;

p->prior=bhead;

while(ch!=';')

return ok;

}void putoutc(lnode *chead)//輸出結果

while(pr!=chead)

coutlnode *pa,*pb;

lnode *p,*chead;

pa=ahead->next;

pb=bhead->next;

p=chead=new lnode;//頭結點

p->data=0;

p->next=p;

p->prior=p;

while(pa!=ahead&&pb!=bhead)

if(pa!=ahead)//a還沒有處理完,把a剩下的數字加到和上 }

if(pb!=bhead)//b還沒有處理完,把b剩下的數字加到和上

}if(carry)//如果最後一位有進製,就申請乙個結點儲存

putoutc(chead); 

return ok;

}int unsigndesub(lnodelist &ahead,lnodelist &bhead)//無符號長整數的減法a比b大。

else borrow=0;

p=new lnode;//儲存差

p->data=diffe;

p->next=chead->next;

chead->next->prior=p;

chead->next=p;

p->prior=chead;

pa = pa->next;

pb = pb->next;

}if(pa!=ahead)

else borrow=0;

p=new lnode;//儲存差

p->data=diffe;

p->next=chead->next;

chead->next->prior=p;

chead->next=p;

p->prior=chead;

pa=pa->next;}}

while (p->data==0&&p->next!=chead)

putoutc(chead);

return ok;

}int add(lnodelist &ahead,lnodelist &bhead)

else unsigndeadd(ahead,bhead);

}else

else unsigndesub(ahead,bhead);

}else

else unsigndesub(bhead,ahead);

}}return 0;

}int sub(lnodelist &ahead,lnodelist &bhead)

else

} else

else unsigndesub(ahead,bhead);

}else

else unsigndesub(bhead,ahead);

}}return 0;

}int mul(lnodelist &ahead,lnodelist &bhead)

pa=ahead->next;

pb=bhead->next;

p=chead=new lnode;//頭結點

p->data=0;

p->next=p;

p->prior=p;

pc=cnow=chead;

while(pb!=bhead)

else

pc=pc->prior;

pa=pa->next; 

}if(carry!=0)

cnow=cnow->prior;

pc=cnow;

pa=ahead->next;

pb=pb->next;

}putoutc(chead); 

return ok;

}int divput(lnode *chead)

while(pr!=chead)

cout}int div(lnodelist &ahead,lnodelist &bhead)

while(borrow==0)

else borrow=0;

pa->data=diffe;

pa = pa->next;

pb = pb->next;

}if(pa!=ahead) 

else borrow=0;

pa->data=diffe;

pa=pa->next;}}

p=pa->prior;

while(p->data==0&&p->prior!=ahead)

}}return 0; 

}int xuan(int &c)

int main()

cout<<"***是否還要進行其他運算操作,是選擇y,否選擇n;***"<

cin>>b;

if(b=='y')h=1;

else h=0;

}while(h);

return 0;}

Redis資料結構 整數集合

最新 redis記憶體 三個重要的緩衝區 最新 redis記憶體 記憶體消耗 記憶體都去哪了?最新 redis持久化 如何選擇合適的持久化方式 最新 redis持久化 aof日誌 整數集合 intset 並不是乙個基礎的資料結構,而是redis自己設計的一種儲存結構,是集合鍵的底層實現之一,當乙個集...

Redis資料結構 intset(整數集合)

整數集合是redis集合鍵的底層實現之一,如果乙個集合只包含整數值元素,而且元素數量不多,redis就會用整數集合作為集合鍵的底層實現 redis集合鍵的另一種底層實現是跳表 一 整數集合的應用場景 跟整數集合intset相關的redis命令主要有zadd sadd等等 二 整數集合的資料結構 ty...

Redis資料結構 整數集合 intset

整數集合 整數集合是集合鍵的底層實現之一,當乙個集合只包含整數值元素,並且這個集合的元素數量不多時,redis就會使用整數集合作為集合鍵的底層實現。1 整數集合實現 整數集合是redis用於儲存整數值的集合抽象資料結構,它可以可以儲存型別位int16 t int32 t int64 t的整數值,並且...