資料結構作業一:大數加法的順序表(陣列)實現:
#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 ...