xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

課程設計 任意長的整數加法 C++ 數據結構

資源截圖

代碼片段和文件信息

#include
#include
#include
using?namespace?std;
struct?linkNode
{
int?data;??????????????????//記錄每個節點的整數(小于10000)
linkNode?*next;????????????//記錄下一個節點的地址
linkNode?*pre;?????????????//記錄前一個節點的地址
};
class?linkList
{
private:
linkNode?*head0*head1;??????//head0,head1分別記錄兩個整數鏈表的頭指針
linkNode?*currptr;
linkNode?*result;????????????//result記錄結果鏈表的頭指針
public:
linkList();???????????????????//構造函數,初始化鏈表
~linkList();?????????????????//析構函數,釋放空間
void?Creat(string?a);????????//引入字符串,創立兩個鏈表,分別表示兩個整數
void?Add();??????????????????//實現兩個整數相加
void?Display();??????????????//顯示結果
void?addtwo();????????????
//節點多的作為被加數,少的作為加數,實現整數絕對值大的加小的
};





int?sum(int?n);
linkList::linkList()????????????????//構造函數,初始化鏈表
{
head0=new?linkNode;???????????
//申請一個空間記錄整數的符號和節點數
head1=new?linkNode;
head0->next=head0;
head0->pre=head0;???????????????//初始化鏈表,建立雙向循環鏈表
head1->next=head1;
head1->pre=head1;
??????result=new?linkNode;
result->next=result;
result->pre=result;
currptr=NULL;
}

linkList::~linkList()????????????????????????//析構函數,釋放空間
{
linkNode?*p1=head0*p2=head1*p3=result;??
//三個指針分別指向三條鏈表的頭指針
while(p1!=p1->pre)????????????????????????
{
????p1->pre->next=p1->next;
????p1->next->pre=p1->pre;
????currptr=p1;
????p1=p1->next;
????delete?currptr;
}
while(p2!=p2->pre)????????????????????????//逐個刪除節點,釋放空間
{?
????p2->pre->next=p2->next;
????p2->next->pre=p2->pre;
????currptr=p2;
????p2=p2->next;
????delete?currptr;
}
while(p3!=p3->pre)
{
????p3->pre->next=p3->next;
????p3->next->pre=p3->pre;
????currptr=p3;
????p3=p3->next;
????delete?currptr;
}
//?delete?p1;
//?delete?p2;
//?delete?p3;
}

void?linkList::Creat(string?a)???????????????????//引入字符串,創立兩個鏈表,分別表示兩個整數
{
int?i=0j=0m=0n=0k=0l=0s=0w=0;??????
//i記錄字符串,j記錄加數節點數;s記錄被加數節點數
????????????????//w標記字符串中的‘-’號
?????????????//k記錄字符串中的字符轉化為整數的值,l使每個節點記錄4位
while(a[m]!=‘;‘)?m++;????????????//m記錄字符串中被加數的字符數
????n=m;????????????????????????????????
while(a[n]!=‘\0‘)?n++;???????????//n記錄字符串的總字符數
if(a[0]==‘-‘)
{
????head0->data=(-1);??????????????//記錄整數符號
????w=1;
}
else?{head0->data=1;}
for(i=m-1;i>=w;i--)?????????????
{
????if(a[i]!=‘‘)???????????????????//把字符轉化為整數
????{
?????k+=(a[i]-‘0‘)*sum(l);
?????l++;
????}
????if(a[i]==‘‘||i==w)
????{
?????currptr=new?linkNode;?????????????//把整數存到雙向循環鏈表中
?????currptr->data=k;
?????currptr->next=head0;
?????currptr->pre=head0->pre;
?????head0->pre->next=currptr;
?????head0->pre=currptr;
?????head0=currptr;?
?????s++;???????????????????????????????//節點數加1
?????k=0;???????????????????????????????//重新初始化k和l
?????l=0;?????????????????????????????
????}
}
??????head0->pre->data*=s;?????????????????????//存儲整數符號和節點數


//與建第一個整數鏈表一樣,建立第二個整數鏈表head1
k=0;l=0;

if(a[m+1]==‘-‘)
{
????head1->data=(-1);
????m++;
}
else?
????head1->data=1;
for(i=n-1;i>m;i--)
{
????if(a[i]!=‘‘)
????{
?????k+=(a[i]-‘0‘)*sum(l);
?????l++;
????}
????if(a[i]==‘‘||i==m

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-06-04?14:10??任意長的整數加法\
?????文件????????9765??2011-01-06?13:54??任意長的整數加法\25.任意長的整數加法.cpp
?????文件??????170496??2012-06-04?14:10??任意長的整數加法\25.任意長的整數加法.doc

評論

共有 條評論