要素を循環的な二重リンクリストに挿入し、これらの要素を表示するコードを記述しました。私はまた、特定の要素のリストを検索するだけでなく、リストからテールノードを削除することができるはずです。円二重リンクリストからノードを削除する
これは、アドオンや印刷のための私の作業コードです:
void Circular_DLList::add_to_tail(int a)
{
DLLNode *temp = new DLLNode;
temp->info = a;
if (is_empty()) {
tail = temp;
temp->next = tail;
temp->prev = tail;
}
else {
temp->next = tail->next;
temp->prev = tail;
tail = temp;
tail->prev->next = temp;
}
}
void Circular_DLList::print_list()
{
DLLNode *ptr;
ptr = tail->next;
do {
cout<< ptr->info << endl;
ptr = ptr->next;
}
while(ptr != tail->next);
}
は、どんなに私がdelete_from_tail機能のために書かれたものは、それがセグメンテーションフォールトが発生していない:11。これは私の関数の試行(エラーをスローする)です。
int Circular_DLList::delete_from_tail()
{
int a = tail->info;
if(tail == tail->next) {
delete tail;
tail = NULL;
}
else {
tail = tail->prev;
delete tail->next;
tail->next = NULL;
}
return a;
}
これを修正する方法についてのアドバイスは素晴らしいと思います。私はデバッグしようとしましたが、私は問題を解明していないようです。 ありがとう
を? –
@UsamaZafarはい、私たちはtailと呼ばれるノードを使っていますので、簡単に言っていました。投稿を編集して明確にします – btoohey
削除自体にエラーが発生していますか?私は推測していない。私は削除権利の後に印刷されていると思いますか? –