雙向鍊錶與單鏈表有許多的相似之處,但是也有不同之處。 雙向鍊錶與單鏈表主要的不同在於:雙向鍊錶可以從兩個方向進行遍歷,但是單鏈表只能從頭節點遍歷到尾節點,不能從尾節點遍歷到頭節點,對於鍊錶中一些插入和刪除等操作,雙向鍊錶較單鏈表更為簡單些。所以,雙向鍊錶有其存在的特殊意義。
——下面是通過c++來實現雙向鍊錶的基本功能。
#include //雙向鍊錶
typedef int datatype;
class listnode //節點結構
private:
datatype data;
};class list
~list() //析構函式
public:
void pushback(datatype x) //尾插
else
}void popback() //尾刪
}else
}void pushfront(datatype x) //頭插
void popfront() //頭刪
}void insert(listnode * pos, datatype x) //在pos位置插入節點
else
}listnode * find(datatype x) //查詢
cur = cur->_next;
}return null;
}void erase(listnode * pos) //刪除pos位置上的資料
else if (pos == _tail)
else
}void reverse() //逆置雙向鍊錶
/*listnode * cur = _head;
swap(_head, _tail);
while (cur)*/}
void printlist() //格式輸出
cout << endl;
}void clear() //釋放所有節點
}private:
listnode * _head;
listnode * _tail;
};
雙向鍊錶(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 實現
雙向鍊錶在類中的實現 include include includeusing namespace std typedef int datatype struct node node pnext node ppre int data class list list const list l else...
C 實現雙向鍊錶
struct dlistnode 節點的建立 class dlist dlist const dlist l head null tail null else dlist operator const dlist l 傳統寫法 tail next null return this dlist ope...