リンクリストを使用するCプログラムを書く必要があります。私はリストを作成し、リストに要素を追加しました。しかし、私はどのようにリストのすべての要素を印刷するのか分からない。リストは文字列のリストです。私は何とかリストをインクリメントして、そこにあるすべての文字列を印刷すると考えましたが、これを行う方法を理解することはできません。C、リンクされた文字列リストを印刷
ショート:linked list
を印刷するにはどうすればよいですか?
リンクリストを使用するCプログラムを書く必要があります。私はリストを作成し、リストに要素を追加しました。しかし、私はどのようにリストのすべての要素を印刷するのか分からない。リストは文字列のリストです。私は何とかリストをインクリメントして、そこにあるすべての文字列を印刷すると考えましたが、これを行う方法を理解することはできません。C、リンクされた文字列リストを印刷
ショート:linked list
を印刷するにはどうすればよいですか?
愚かな質問はありませんです。
def printAll (node):
while node is not null:
print node->payload
node = node->next
printAll (head)
それは本当に、ただペイロードをプリントアウトし、リスト内の次のノードに移動し、ヘッドノードで起動します:ここでは、始めるためにいくつかの擬似コードです。
次のノードがリストの末尾になったら、停止します。これはあなたが探しているものであれば
まあ、実際には、おそらくがあり、が、これは私はかなりよく分からない
ありがとう、私は今何をすべきかの良い考えがあると思う。 –
:-)そのうちの一つではありません、通常はあなたのDSにpHead(最初の要素へのポインタ)を格納し、文字列ノードの次のアドレスを取得する関数を実装します。
次のアドレスがNULL(尾に達したことを意味します)まで、これを行います。
ポインタを使用してリンクリストを反復することができます。擬似コード:
tempPointer = head
while(tempPointer not null) {
print tempPointer->value;
tempPointer = tempPointer->next;
}
擬似コード: - 正確なことです
struct list
{
type value;
struct list* pNext;
}
void function()
{
struct list L;
// .. element to L
// Iterate each node and print
struct list* node = &L;
do
{
print(node->value)
node = node->next;
}
while(node != NULL)
}
があなたの本当の問題のような音は、「私はリンクリストを反復処理を行うにはどのように」とは? – Cascabel
Jefromiの質問へのフォローアップは2つの部分に分かれています:1)最初のノードの内容を印刷できますか?2)2番目のノードへのリンクを得ることができますか? – dmckee
本当にリンクリストに使用するデータ構造に依存していますが、これまでのコードを表示できますか? Btw、これが宿題の場合は、そのようにタグ付けする必要があります。 –