標頭檔案:
//
/* author: bizhu12 */
/* timer : 2011.07.02 */
/* 編譯環境: vs2008 */
////建立線性鍊錶
#pragma once
#include "targetver.h"
#include #include #ifndef list_h_
#define list_h_
struct listnode
;class list
;#endif
cpp檔案:
// linklist.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include using namespace std;
list::list()
//建立鍊錶
listnode* list::createlist(int count) //count是建立鍊錶是需要指定節點個數
nodecount = count;
return phead; //返回頭結點
}void list::printlist(listnode * phead)
cout << endl;
}else
return;
}//插入節點
int list::insertnode(listnode *phead,listnode *node,int seat)
listnode *p = phead;
//定位
while(i < seat)
//插入
node->pnext = p->pnext;
p->pnext = node;
nodecount++; //節點個數+1;
return 1;
}return 0;
}//刪除節點
listnode * list::deletenode(listnode *phead,int seat)
//定位
while(i < seat)
//從鍊錶中刪除
ptemp = p->pnext;
p->pnext = ptemp->pnext;
nodecount--; //節點個數減一
return ptemp; //返回刪除的節點
} return null;
}//簡單的選擇排序,公升序排序
int list::sortlist(listnode *phead)
}}
return 1; //成功返回1
} return 0; //否則0
}//刪除線性鍊錶
int list::destroylist(listnode *phead)
phead = null;
nodecount = 0;
return 1; //成功返回1
}return 0; //失敗返回0
}
資料結構 線性結構 雙向鍊錶
雙向鍊錶 就是在單向鍊錶的基礎上加了乙個pre 指向該節點的前乙個節點 域,其他的沒有改變,在對鍊錶進行增刪相關操作時在單向鍊錶的基礎上多以乙個向前節點連線的動作即可。因為有了指向前乙個節點域,所以雙向在查詢資料上比單向的速度要快。1 2 雙向鍊錶3 4class doublelinkedlist ...
資料結構 線性表 鍊錶
在之前了解完什麼是資料結構之後 資料結構 線性表 順序表 陣列 我們再來看看線性結構另外一種實現方式 鍊錶順序表中的鍊錶沒有物理上的連續儲存要求,只需要在儲存資料時通過 鏈 的方式將資料進行連線,而這個 鏈 的實現就是通過指標來實現的。鍊錶的連續儲存方式 對於抽象資料型別來說,每一種資料結構都有自己...
資料結構之線性鍊錶
線性鍊錶是一種資料儲存結構,其分為順序儲存結構和鏈式儲存結構。順序儲存結構儲存資料的方式和平時接觸到的陣列是一樣的,其資料結構定義如下 define maxsize 100 typedef struct sqlist 關於鍊錶的初始化,尋找資料,插入資料,刪除資料等操作,與陣列類似,這裡就不做詳細介...