[問題] queue by circular link-list
打算用circular linked list實做queue
目前發現加入元素函式有問題,下面是程式碼節錄:
struct NODE
{
NODE(int value);
int dat;
NODE *next;
};
NODE::NODE(int value)
{
dat=value;
next=NULL;
}
void add(NODE *in,int value)
{
NODE *p;
p=(NODE *) malloc(sizeof(NODE));//產生新節點
p->dat=value;//給值
if(in->next==NULL){//若queue為空
p->next=p;
in=p;
}
else{
p->next=in->next;
in->next=p;
}
printf("%d %d %d %d|",in->dat
,in->next->dat
,in->next->next->dat
,in->next->next->next->dat);
}
main裡面這樣寫:
NODE *t;
t=new NODE(-1);
add(t,4);
add(t,6);
add(t,8);
跑出來都只能找到最新插入的點
output:4 4 4 4|6 6 6 6|8 8 8 8
想了很多次不知道是哪邊的邏輯有錯誤,有請大大們指正了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.221.219
推
05/06 23:47, , 1F
05/06 23:47, 1F
→
05/06 23:48, , 2F
05/06 23:48, 2F
推
05/06 23:56, , 3F
05/06 23:56, 3F
推
05/06 23:56, , 4F
05/06 23:56, 4F
推
05/07 00:03, , 5F
05/07 00:03, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章