簡體   English   中英

有符號長整數的含義

[英]Meaning of Signed Long Integer

我有以下要求:

創建線性列表函數:CreateList、AddNode、DeleteNode、SearchNode 和 DeleteList,用於保存有符號長整數的列表。

我對這里的 2 個術語感到困惑,這里的有符號長整數的含義是否意味着:

“任何正整數或負整數,包括 0”?

我錯過了什么嗎?

和第二

“線性列表”是指單鏈表還是雙鏈表?

謝謝你

我有以下要求:

創建線性列表函數:

這種措辭對於 C++ 來說已經很奇怪了。 在 C++ 中,處理相同數據的幾個函數通常被分組到一個類中。

CreateList、AddNode、DeleteNode、SearchNode 和 DeleteList,

  • 一個類有一個名稱,在本例中為ListLinkedList
  • 由於函數是在類中定義的,因此它們的名稱不需要包含單詞List因為這將是多余的。
  • 函數名稱也不應該包含單詞Node因為這是這些函數的調用者不必擔心的實現細節。
  • CreateList函數應該是類的構造函數。 構造函數沒有名字。
  • DeleteList函數應該是類的析構函數。 析構函數沒有名字。

對於包含有符號長整數的列表。

在設計數據類型時,一開始使用單一的具體數據類型會更容易。 稍后該數據類型通常被替換為占位符,以便此列表可用於任何類型,使其成為模板類。 就本練習而言,您的老師很可能指的是單一類型long int (隱式簽名)。 如果需要,您還可以編寫signed long int ,這是等效的。

“線性列表”是指單鏈表還是雙鏈表?

我們不能告訴你。 這個你得問你的老師。

在慣用的 C++ 中,類型定義的基本結構如下所示,我省略了實現細節:

class LongIntList {
public:
    LongIntList();   // This is the constructor
    ~LongIntList();   // The ~ marks this as the destructor
    void Add(long int element);
    void Delete(long int element);
    bool Search(long int element);
}

在 C++ 標准庫中, Search函數看起來有點不同(它返回一個迭代器,而不僅僅是一個布爾值),但對於初學者來說,布爾值已經足夠了。 后面會講到迭代器。

綜上所述,您當前的指令將使您編寫結構簡單的代碼,這對學習有好處。 但請注意,生成的代碼不被認為是好的 C++ 代碼。 在介紹了必要的概念之后,您的老師希望您以后可以將當前代碼轉換為好的 C++。 如果在接下來的幾個月內沒有發生這種情況,您可以將您當前的代碼(必須按預期工作)發布到https://codereview.stackexchange.com/ ,讓有經驗的 C++ 程序員告訴您它應該是什么樣子,並且為什么。

“有符號”整數是帶有“符號”位的整數,指示它是負值還是正值。

一個“長”整數,可能比一個長整數,具體取決於架構。 在 32 位上,long 至少是 32 位,大小與 int 相同,在 64 位系統上,long 是 64 位。

您不需要指定 'signed' 因為它是默認值,只需將變量聲明為long使其成為有符號的 long 變量。 另一方面,如果您只想要一個正值,則需要將其指定為unsigned long

對於有符號整數,最大值是無符號整數的最大值的 1/2,因為它從中間拆分。 例如,16 位無符號整數的范圍是 0 到 65535,而有符號 16 位整數的范圍是 -32768 到 32767。

線性列表正是這樣,一個以線性順序排列的列表,它沒有指定您將如何創建它,但是由於函數使用術語“節點”,我認為鏈表適合范式更正確。 請參閱std::list因為這可能適合您正在做的事情。

這是教學術語,這是翻譯:

  • 線性列表- 非循環列表(最后一個節點未鏈接到第一個節點)。 可以是單鏈或雙鏈。 如果沒有指定,老師通常要一個人,但你應該問。
  • 有符號長整數- long類型。 有符號整數包括負數(int、long 等)。 無符號整數只有正數(unsigned int、unsigned long 等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM