鍊錶可以說是最基本的資料結構,在常見的筆試,面試可能都會有涉及,本文是用陣列來實現鍊錶。
其**實現如下
#include
using namespace std;
class list
bool isempty()
int length()
int locate(int &x);//返回表中元素x的位置
bool retrieve(int k, int &x);//返回表中位置k,將之放入元素x
list& insert(int k,int x);//在位置k插入元素x
list& delete(int k,int &x);//刪除位置k的元素,將之存在x中]
void printlist();
}; list::list(int max)
int list::locate(int &x)
list& list::insert(int k, int x)
list& list::delete(int k, int &x)
//else 在此丟擲異常
} void list::printlist()
int main()
由於該演算法相對簡單,只是在某些部分進行簡單注釋。
用陣列來實現鍊錶的效率不是很高,如在進行插入和刪除時至多需要移動n個元素,效率為o(n)。
明後天的部落格內容為一筆畫問題(即尤拉迴路的演算法),歡迎各位到時捧場。
用陣列和鍊錶實現棧
完成乙個棧總共需要完成以下操作 初始化入棧 出棧檢視棧頂元素 檢視棧的容量 清空棧。首先是簡單的,用陣列做的,會有越界的可能。include include typedef struct stack stack stack s 生成棧 void initstack 入棧,push void push...
用鍊錶和陣列實現佇列
佇列的原則是先進先出,主要有offer,poll,peek,isempty和size方法.用鍊錶實現 package test class node node int var public class queuetest else tail node size 元素出隊 public int pol...
用c 實現單向鍊錶和雙向鍊錶
鍊錶是一種非常基礎的資料結構,本身也比較靈活,突破了陣列在一開始就要確定長度的限制,能夠做到隨時使用隨時分配記憶體。同時還有新增,刪除,查詢等功能。總的來說,鍊錶是由幾個模組構成的。一,單向鍊錶 鍊錶基本元素 struct node 建立節點 node current nullptr node he...