雙向鍊錶(c 實現)

2021-07-16 09:37:21 字數 1102 閱讀 6892

雙向鍊錶與單鏈表有許多的相似之處,但是也有不同之處。 雙向鍊錶與單鏈表主要的不同在於:雙向鍊錶可以從兩個方向進行遍歷,但是單鏈表只能從頭節點遍歷到尾節點,不能從尾節點遍歷到頭節點,對於鍊錶中一些插入和刪除等操作,雙向鍊錶較單鏈表更為簡單些。所以,雙向鍊錶有其存在的特殊意義。

——下面是通過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...