問題タブ [singly-linked-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
5445 参照

linked-list - リンクリストの母音を最初にシフトします

リンクされた文字のリストが与えられた場合、母音と子音の両方が時系列になるように母音を最初に移動する必要があるという問題を解決していました。これは、元のリストに表示される順序です。

Input : S->T->A->C->K->O->V->E->R->F->L->O->W

Output : A->O->E->O->S->T->C->K->V->R->F->L->W

リストを1回トラバースして、母音と子音という2つのリストを作成し、後でそれらをマージしました。

追加のリストを作成せずに実行できますか?インプレースでポインタ操作を使用することを意味しますか?

0 投票する
2 に答える
1151 参照

java - 最後のノードのみを参照として循環リンクリストを実装する方法がわからない

リンクリストの定義方法を再実装するように求められました。タスクは次のとおりです。LinkedListクラスの最初のノードへの参照を削除して、リストの最後の要素のみを追跡するようにします。また、このリンクリストが循環リンクリストになるように、最後の要素から最初の要素へのnext()参照を作成するように求められます。これを行うためのエレガントな方法はありますか?

これは私がこれまでに持っているものです:


これは元のコードでした:

0 投票する
1 に答える
111 参照

c++ - リンクリストデータアクセス

C ++では、次の形式のバイナリ検索ツリー(BST)がある場合

次のようにleftChildデータにアクセスすることは合法ですか?

また、リンクリストノードが子に* nodeを使用している場合もあれば、単にnodeを使用している場合もあります。いつ/なぜどちらかを使用しますか。文字列の質問が気になるのでごめんなさい。

0 投票する
1 に答える
1681 参照

c - C のリンク リストの 'addFirst' メソッド

私が作成したリストがあります:

私の「addFirst」:

問題は、新しい「ノード」をリストに追加すると、関数で機能しますが (DDD デバッガーを使用して確認します)、関数を終了してもリストは同じままです。

struct list_t*これは、メソッドが の代わりにa を返すようにすることで実行できることを知っていvoidます。また、 head のポインターへのポインターを引数 ( struct list_t** PtoHead) として渡すことでも可能ですが、私の質問は、メソッドを使用してこれを実行できるかどうかです (つまり、voidへのポインターをheadパラメーターとして持つ)。

0 投票する
1 に答える
4265 参照

java - 逆方向単方向リンク リスト Java、循環かどうかをチェック

Java で単一リンク リストを実装しました。単独でリンクされたリストを逆にして、特定のリストが循環しているかどうかを確認できます。興味深いのは、循環リストを逆にすることもできるということです。これは奇妙で興味深いことです。循環リストを反転できるのは理にかなっていますか?実際には、何度も反転する必要がありますよね? 現時点では、以下のコードは循環リストを逆にして終了することができます。それが正しいか?

0 投票する
3 に答える
1803 参照

c - リンクリストにノードを追加する際のセグメンテーション違反

リンクリストにエントリを追加するadd()という関数があります。

リンクリストノードに格納されている「値」自体が構造体へのポインタであることに注意してください。セグメンテーション違反が発生しています。

これはおそらく、entry_t構造体の割り当てメモリではないためです。知りたいのは、これが通常のユースケースであるということです。はいの場合、どうすればよいですか。

割り当てを行う前に?また、これを達成するためのよりエレガントな方法はありますか?

追加情報。

gdbを実行すると、

sp_entryはnullポインタのように見えます。これはadd()関数のmallocの後に出力されます。また、私のコードは「-g-O0-Wall」と結合されています。警告はありません。

0 投票する
1 に答える
128 参照

c++ - 複数の要素の削除でエラーが発生しました。メソッドを削除します。単一の連結リスト

入力された要素を最小のものから最大のものへとソートする C++ を使用して、(少し助けを借りて) 単一の連結リストを作成しました。同じ値からいくつかの要素を削除したいのですが、使用する Delete メソッドは、コードがさらに削除するように見えるときに、1 つしか削除できないようです。複数の要素を削除するために Delete メソッドを呼び出すループを使用しようとしましたが、1 つを削除するとセグメンテーション違反になります。助けていただければ幸いです。ありがとうございました。

}

}

0 投票する
1 に答える
6415 参照

c++ - cpp LinkedList プログラムで 2 つの多項式を乗算する

私は C++ で多項式プログラムを実行しています。これは、単方向リンク リストで実装することになっています。はい、これは宿題です。私はほとんどのプログラムを作成しましたが、乗算演算子のオーバーロードに固執しています。これは私の operator* 関数です:

参考までに、今のところリンク リストの最後に新しい要素を追加するだけです。

ここに私の AddElement 関数があります:

Node は、プライベート データ メンバー係数、電力、および次のノードへのポインターを持つ単なる私のクラスです。LinkedList は、プライベート Node* ヘッド メンバー、パブリック オペレーターのオーバーロード関数、およびいくつかのコンストラクターを含むメイン クラスです。ここで使用するコンストラクターは、head を NULL に設定したデフォルトのコンストラクターです。

2 番目の while ループの後にいくつかの cout ステートメントを配置し、2 つの多項式を乗算して乗算関数をテストしました。

したがって、この場合、main.cpp ファイルに次のコードがあります。

また、 << オーバーロードされた演算子は正常に機能し、リンクされたリストを正常に表示します。問題は、私がこれをやろうとするときです:

セグメンテーション違反が発生します。理由はわかりません。前述したように、最初の while ループ内に cout ステートメントを配置しました。これは、poly1 * poly2 を実行したときに得られるものです。

ええ、それはかなり醜いですが、これはこれらすべてのものを一緒に追加する前です. しかし、とにかく、それは本質的に正しいです。最後の定数を評価した後、セグメンテーション違反が発生します。

なぜこれを行っているのかわかりません。乗算演算子に対してのみこれを行います。他のものは正常に動作します。おそらくどこかにバグがあり、ここ数時間それを探しましたが、何が間違っていたのかわかりません。誰か助けてくれませんか?

ありがとう。

私のノードクラス:

0 投票する
7 に答える
12438 参照

java - 単一リンクリストを繰り返し逆にする

O(n) でインプレース (スペースの複雑さ 1) である必要があります。以下のコードは機能しますが、もっと簡単で良い方法はありますか?