2016-04-27 12 views
1

スタックと単一リンクリストを実装する最良の方法はどれですか?私は2つの構造体を最初にノード(値、ポインタ)の構造体と他の重要なノード(先頭または頭部、尾部、必要な場合はサイズ)を入れるか、またはノード構造体?ここで スタックと単一リンクリストを実装する最良の方法

は、私が何を意味するかです:

ケース1:

typedef struct node { 
    int value; 
    struct node *next; 
} Node; 

ケース2(スタック):

typedef struct node { 
int value; 
struct node *next; 
} Node; 

typedef struct stack { 
    Node *top; 
    /* int size; */ 
} Stack; 

ケース2(SLL):

typedef struct node {        
    int value; 
    struct node *next; 
} Node; 

typedef struct list {        
    Node *head, *tail; 
    /* int len; */ 
} List; 
+1

この宿題はありますか? – SevenBits

+0

いいえ、それは宿題ではありません。私はちょうど初心者であり、コードするための最良の方法はどれかを知りたい。 – vamoirid

答えて

2

あなたのケース2には、より安全な型安全性の利点があります。 Cコンパイラは、リストの代わりにノードまたはスタックを使用するかどうかを検出します。

逆に、スタックとリストを扱うだけの機能がある場合は、その特殊バージョンが必要です。もちろん、共通の低レベルノードベースの実装を共有することもできます。型安全性の管理上のオーバーヘッドはもう少し増やさなければなりませんが、通常はその価値があります。

関連する問題