【解決方法】C の単純な連結リスト


こんにちは、授業でシンプルリストとダブルリンクリストについて学びましたが、本当に理解できませんでした。
単純なリンク リストの上部に 2 つの要素を追加し、下部に 2 つの要素を追加するコードを作成する必要があります。

私が試したこと:

私はインターネットを検索しましたが、本当に有用なものが見つかりませんでした

解決策 2

見積もり:

私はインターネットを検索しましたが、本当に有用なものが見つかりませんでした

もっと検索してみてください: Web 上には、リンクされたリストに関する情報がたくさんあります。 たとえば、次を参照してください。 リンクされたリスト[^].

解決策 1

私たちは立ち往生している人々を喜んで助けますが、それは私たちがあなたのためにすべてをするためにここにいるという意味ではありません! 私たちがすべての作業を行うことはできません。あなたはこれに対して報酬を受け取っているか、またはそれはあなたの成績の一部であり、私たちがあなたのためにすべてを行うことはまったく公平ではありません.

だから私たちはあなたが仕事をする必要があり、あなたが行き詰まったときにあなたを助けます. それは、あなたが提出できる段階的な解決策を提供するという意味ではありません!
現在の状況と、プロセスの次のステップを説明することから始めます。 次に、その次のステップを機能させるために何を試みたか、またその際に何が起こったかを教えてください。

開始するのに問題がある場合は、これが役立つ場合があります。 問題を解決するためのコードの書き方、初心者向けガイド[^]

リンクされたリストとは何かを考え、紙の上でそれをエミュレートしてみてください。 次に、その紙のリストの先頭に要素を追加する方法を考え、それを行うための指示を自分で書きます。 それらが機能することを確認してください。それをコードに変換するのは非常に簡単です。 構築するコードを書くことから始めて、入力されたリストを出力し、それが機能することを確認してから、挿入関数を追加して試します。 先に進む前に、すべてが機能することを確認してから、一度に 1 つずつ少しずつ進めてください。それほど難しくありません。 急いでコードの大きなブロックを叩きつけると、どのビットが実際に機能しているかがわからないため、問題が発生します。

解決策 3

見積もり:

私は学びました…私にはわかりません

1. 明らかに、最初にリストを定義する必要があります。 これは通常、C では次のようになります。

C
typedef struct mylist {
	int val;
	struct mylist *next;
} listtyp;

2. リストの要素がどのように見えるかを定義したら、作成できます。

C
listtyp* list_create_node(int val)
{
  listtyp* tmp = NULL;
  tmp = (listtyp *)calloc(1, sizeof(listtyp));
  tmp->val = val;
  return tmp;
}

3. 通常、リストを出力できるはずです。

C
void list_print(listtyp* head) 
{
  listtyp* current = head;

  while (current != NULL) {
    printf("%d\n", current->val);
    current = current->next;
  }
}

4. 次の 2 つの関数を作成します。

C
// write a code to add elements at the top
listtyp* list_add_top(listtyp* head)
{
  listtyp* tmp = NULL;
  // TODO: write your code here
  return tmp;
}

// write a code to add elements on the bottom
listtyp* list_add_bottom(listtyp* head)
{
  listtyp* tmp = NULL;
  // TODO: write your code here
  return tmp;
}

コメント

タイトルとURLをコピーしました