大數加法順序表及鏈式表的實現

2021-07-24 17:33:34 字數 1975 閱讀 7175

資料結構作業一:

大數加法的順序表(陣列)實現:

#include

using

namespace

std;

const

int maxn=5000;//大整數最大精度

class big_int //大整數類

; //構造一:

big_int(big_int &a); //建構函式

~big_int(){}; //析構

big_int operator+(big_int &a);

//big_int operator=(big_int &a);

void get(char a);

void show();

};void big_int::get(char a)

void big_int::show()

big_int::big_int(big_int &a)

for(int i=0;ithis->digit[n-m+i]+a.digit[i]-'0';}}

else

}int intnow=0;

for(int i=max(n,m)-1;i>=0;i--)

else

intnow=0;

}if(intnow==1)

return now;

}/*big_int big_int::operator=(big_int &a)

大數加法的鍊錶實現;

#include

using

namespace

std;

const

int maxn=0x3fff;

class bigint

; //構造一:

bigint(bigint &a); //複製建構函式

bigint operator+(bigint &a); //加法操作

~bigint(){};

void get(char a); //賦值函式

void show(); //輸出函式

void bigintscan(); //輸入函式

};bigint::bigint(bigint &a)

bigint bigint::operator+(bigint &a)

for(int i=m;i//進製單獨操作;

int jinwei=0;

for(int i=0;iint)(d.digit[i]>'9');

if(jinwei)

}if(jinwei)

else d.digit[n]='\0';

}else

//多的部分直接傳遞過來就好;

for(int i=n;ithis->digit[i];

}//處理進製操作;

int jinwei=0;

for(int i=0;iint)(d.digit[i]>'9');

if(jinwei)

}if(jinwei)

else d.digit[m]='\0';

}return d;

}void bigint::get(char a)

digit[n]='\0';

return;

}void bigint::show()

void bigint::bigintscan()

int main()

總的來說大數加法只需要考慮數的儲存,逐位相加,進製,輸出即可,又因為相加需要從個位操作,輸出是從高位輸出可能需要一些考慮;

鍊錶實現大數加法

標籤 演算法 你的任務是完成一條能實現加法功能的單向鍊錶,需要實現的函式在標頭檔案已給出。假如現在有 123 與 234 兩個數字,那麼他們在鍊錶中的儲存結構將會是 3 2 1與 4 3 2 注意到這裡的鍊錶只允許從前端插入,你也可以把這個特殊的鍊錶當做棧來處理。輸入的數字不會有負數且不會有前導0的...

順序表的 鏈式儲存(鍊錶)

一.單鏈表節點的型別定義 typedef int elemtype typedef struct node lnode,linklist lnode h,p linklist h,p 其中 p 表示p指向的節點 p data p data表示p指向節點的資料域 p next p next表示p指向節...

順序表與鏈式表 如何用類實現

順序表 include using namespace std const int max n 1000 class seqlist seqlist int ca,int b seqlist intlength intget int i 按位查詢 intlocate int x 按值查詢 void ...