2015-06-28 388 views
-2

以下是問題的具體細節。在C++中使用鏈接列表實現數學程序

創建一個將整數存儲在鏈表節點中的算術程序。每個節點將存儲一個三位整數,後續節點將保存大於四位數的部分數字。

例如:2101453788將由四個節點來表示,所述第一被留用零填充,導致

你程序將需要超載算術運算符+和 -

輸入到程序的每個數字都應有自己的鏈表,並將算術結果存儲在結果鏈表中。算術運算的最終結果應輸出到控制檯,每個數字部分都列出其節點位置。

如果我們想添加10,000和845的輸出結果將是:

答案是

節點1 = 010

節點2 = 845

給予10,845

我有一個很難時間瞭解我將如何: a。用0的 b填充左側。限制整數的大小爲3位

我想你可以稱這個作家塊,我只是無法描繪該程序,我正在尋找一些在正確的方向輕輕推動。

我到目前爲止: a。創建一個主類,以整數 b的形式要求用戶輸入。創建一個結構來充當我的ListNode

#ifndef LISTNODE_H 
#define LISTNODE_H 

#include "stdafx.h" 

struct ListNode 
{ 
    //the integer data for the node 
    int data; 

    //Pointers 
    ListNode* nextPtr; 
    ListNode* prevPtr; 


    //Constructor 
    ListNode(const int& the_data, ListNode* next_node_ptr = NULL, ListNode* prev_node_ptr = NULL) 
    { 
    data = the_data; 
    nextPtr = next_node_ptr; 
    prevPtr = prev_node_ptr; 
    } 
}; 
#endif 

我無法弄清楚是如何修改我的結構要堅持3位參數和墊左側的單或雙輸入數字與0。 我想將整數存儲在結構體內的數組中,以便我可以使用索引來分隔數字,但後來我認爲必須進行大量的字符串操作才能將整數存入數組中。我接下來想到將輸入作爲一個字符串並計算字符以確定所需節點的數量。 任何輸入都會有幫助,有時我覺得很難退後一步,看看大局。

+1

那麼你自己說過:創建一個算術程序,在鏈表節點中存儲「整數」。你不能將一個整數存儲爲001,它只是1,但不會改變任何東西,因爲它仍然是以字節爲單位的東西。你看到我從哪裏來?如果值大於「999」(基本上是4位數),如果大於「999 999」,則不需要移動任何東西,只要確保將其分開即可。 –

回答

0

我認爲你需要對你的問題進行修改,並提出一個更精確的查詢。

據我所知,你正在尋找一種方法來將長度> 3位的數字分成子部分,以便能夠將它們存儲在鏈表中。要做到這一點,請劃分每個號碼。到1000,直到股息爲0。例如:

1000)999999(999 
    999000 
    ------ 
    000999 

將rem,即999插入鏈表。

由於分紅還不0,如再次劃分REM:

1000)999(0 
     0 
    --- 
    999 

現在,分紅爲0,所以你可以停止你的循環,進入到下一個整數。希望這可以幫助!