struct dlistnode //節點的建立
};class dlist
dlist(const dlist& l)
:_head(null),_tail(null)
else}}
//dlist& operator=(const dlist& l) //傳統寫法
//// _tail->next = null;
// }
// return *this;
//}//dlist& operator=(const dlist& l) //現**法
//// return *this;
//} dlist& operator=(const dlist l) // 再優化,傳值操作
return
*this;
}~dlist()
void pushback(datatype x)
else
return;
}void popback()
else
if (_head == _tail)
else
}void pushpront(datatype x)
else
return;
}void poppront()
else
if (_head == _tail)
else
}void insert(node* pos,datatype x)
else
if (pos == _tail)
else
return;
}node* find(datatype x)
return cur;
}void erase(node* pos)
else
if (pos == _tail)
else
pos->prev->next = pos->next;
pos->next->prev = pos->prev;
delete pos;}}
//void reverse() //對稱位置值交換
//// return;
//}void reverse() //通過交換每乙個節點上的兩個指標來實現逆置
swap(_head, _tail);
}void clear()
_head = _tail =
null;
}void display()
cout << endl;
}private:
node* _head;
node* _tail;
};void test1()
void test2()
void test3()
int main()
雙向鍊錶(C實現)
list.h ifndef list h define list h typedef struct node node typedef struct list list initlist int insertnode list l,void data,int size int deletenode ...
雙向鍊錶(c 實現)
雙向鍊錶與單鏈表有許多的相似之處,但是也有不同之處。雙向鍊錶與單鏈表主要的不同在於 雙向鍊錶可以從兩個方向進行遍歷,但是單鏈表只能從頭節點遍歷到尾節點,不能從尾節點遍歷到頭節點,對於鍊錶中一些插入和刪除等操作,雙向鍊錶較單鏈表更為簡單些。所以,雙向鍊錶有其存在的特殊意義。下面是通過c 來實現雙向鍊錶...
雙向鍊錶 C 實現
雙向鍊錶在類中的實現 include include includeusing namespace std typedef int datatype struct node node pnext node ppre int data class list list const list l else...