3

QMLファイルブラウザを作成しています。ここで、 backおよびforward関数を実装したいと思います。この機能は、ブラウザの前後の機能に似ています。例 :

「/home/ text / folder1」から始めて、「/ home / text / folder1/src」を参照します。ここで、「/ home / text / folder1 / src/java」を参照します。2回押すと、「/ home / text / folder1」になり、もう押すことができなくなります(ボタンがグレー表示されるか、他の方法で、表示される「前の」アイテムがなくなったことを示します)。 )。

私はこれを二重リンクリストを介して実装することを考えていました。しかし、リストのどこに新しいアイテムを挿入すべきか、いつ挿入すべきかを理解するのに苦労しています。

前の例を見てください:2回押す代わりに、1回だけ押し戻す場合(現在は「/ home / text / folder1 / src」にいます)。突然「/home/ text / folder2」に移動した場合、今はどうなりますか?私の二重リンクリストは今どのように見えるべきですか?

これはデータ構造の問題であり、実装ではないため、コードは必要ありません。

4

2 に答える 2

3

二重にLinkedListを使用するというあなたのアイデアは、始めるのに良いポイントだと思います。新しいディレクトリを入力する場合は、現在のアイテムの後に新しいアイテムを追加し、リンクリストの末尾を破棄します。

フォルダ1、2、3にいると仮定します(つまり1->2->[3]、現在のノードを示すリスト、角かっこがあります)。ここで2回戻り[1]->2->3、新しいフォルダー4に移動すると、を取得する1->[4]ため、パーツを破棄しました2->3

于 2011-07-25T14:03:04.013 に答える
1

リストではなく、スタックが必要です。すべての前方ナビゲーションは、スタックにリンクを配置します。戻るたびに、スタックからアイテムを削除します。

于 2011-07-25T12:07:41.840 に答える