PDA

View Full Version : مبتدی: سوال : حذف یک گره از لیست پس از یک گره نامعلوم



5hahab
شنبه 02 خرداد 1394, 20:39 عصر
میخواستم بدونم سورسی که واسه این سوال نوشتم درست هستش یا نه . ممنون میشم اعلام کنید.


/* run this program using the console pauser or add your own getch, system("pause") or input loop */
#include <iostream>
#include <cstdlib>
using namespace std;
struct node{
int data;
node* next;
node* prev;};
class linkedlist{
private:
node* front;
public:
int Delete(node* n);
void show();
};
void linkedlist::show(){
cout<<"elements:";
node* cur=front;
while(cur != front){
cout<<cur->data<<',';
cur=cur->next;
}
}
int linkedlist::Delete(node* r){
if((front== NULL) || (r == NULL) || (r->next == NULL))
return -1;
else{
node* n;
n=r->prev;
if(r->next != NULL)
n=r->next->prev;
r->next=n->next;
}
}
int main()
{
return 0;
}

rahnema1
یک شنبه 03 خرداد 1394, 07:50 صبح
فکر کنم سوال قبلی را پیدا نکردید :) http://barnamenevis.org/showthread.php?496054

5hahab
یک شنبه 03 خرداد 1394, 12:54 عصر
برنامه قبلی که نوشته بودم حذف یه گره از لیست یه سویه بعد از یه گره معلوم بود اما اینی که الان نوشتم حذف یه گره از لیست دو سویه بعد از یه گره نامعلومه اینا با هم فرق دارن اگه میشه اینی که الان نوشتمو بگید کدش مشکلی داره یا نه ؟

rahnema1
یک شنبه 03 خرداد 1394, 13:28 عصر
ببخشید فکر کردم سوال تکراریه

void linkedlist::Delete(node*& r){
node* n = r->next->next;
delete r->next;
r->next = n;
r->next->prev = r;
}