鍊錶儲存是在程式執行過程中動態分配空間,只要儲存空間還有空間,就不會發生儲存溢位問題 。
優點:插入和刪除速度快,保有原有的物理順序。比如,插入或者刪除乙個元素時,只需要改變指標指向即可。缺點:查詢速度慢,因為查詢時,需要迴圈鍊錶訪問 。
#include
#include
//鍊錶,別名鏈式儲存結構或單鏈表
//鍊錶不限制資料的物理儲存狀態,使用鍊錶儲存的資料其物理儲存位置是隨機的
//鍊錶的節點:資料域和指標域,鍊錶實際儲存的是乙個乙個的節點
//建立乙個儲存 鍊錶
//鍊錶的初始化:宣告乙個頭指標,建立節點
//定義節點
//typedef給結構體等型別定義別名
typedef
struct linklink;
//link是link的別名;可以用別名來宣告資料型別
//初始節點
link *
init_link()
//返回建立的節點,只返回頭指標 p即可,通過頭指標即可找到整個鍊錶
return p;
}void
dispaly_elem
(link *p)
while
(temp->next)
// printf("%d\n",p);
// printf("%d\n",&p);
}// 鍊錶的基本操作增、刪、改、查;
link *
insertelem
(link *p,
int elem,
int pos)
//pos指的是在第幾個節點後插入
//初始化新插入的結點
link *c =
(link*
)malloc
(sizeof
(link));
//先對新插入的結點與後繼結點進行連線,再將插入的結點與前驅結點相連
c->next = temp->next;
temp->next = c;
c->elem = elem;
return p;
}//刪除指定位置的結點
link *
deleteelem
(link *p,
int pos)
link * a=temp->next;
temp->next=temp->next->next;
a->next =
null
;free
(a);
return p;
}//查詢指定元素,並返回元素的位置
intsearchelem
(link *p,
int elem)
temp=temp->next;
pos++;}
return pos;
}//更新指定位置結點的元素
//....
intmain()
資料結構 表之煉表
頭插法建立 尾插法建立 顯示 銷毀 include include using namespace std typedef int elemtype typedef struct lnode linklist void createlinklistf linklist l,elemtype a,in...
資料結構之鍊錶
頭結點 第乙個有效結點之前的那個結點 頭結點並不存有效資料 加頭結點的目的主要是為了方便對鍊錶的操作 頭指標 指向頭結點的指標變數 尾指標 指向尾節點的指標變數 如果希望通過乙個函式對鍊錶進行處理,只需要乙個引數 頭指標 首先要定義乙個單鏈表儲存結構 然後建立乙個空表,即初始化,我寫的這個提前設定好...
資料結構之鍊錶
鍊錶是一種基本的資料結構型別,它由乙個個結點組成。每乙個結點包括乙個資料的儲存和乙個指向下乙個結點的引用。在這個定義中,結點是乙個可能含有任意型別資料的抽象實體,它所包含的指向結點的應用顯示了它在構造鍊錶之中的作用。和遞迴程式一樣,遞迴資料結構的概念一開始也令人費解,但其實它的簡潔性賦予了它巨大的價...