//帶頭節點的單鏈表
#include #include typedef struct lnodenode , *linklist;
bool initlist(linklist &); //初始化單鏈表
bool listinsert(linklist & , int , int); //在指定位置插入資料
bool empty(linklist); //判斷鍊錶是否為空
bool hlistinsert(linklist & , int , int); //在指定節點前面插入資料
bool rlistinsert(linklist * , int , int); //在指定節點後面插入資料
void output(linklist); //輸出鍊錶
bool listdelete(linklist & , int , int &); //刪除指定位置的資料
bool headinsert(linklist , int); //頭插法
node* getelem(linklist , int); //查詢指定位置的值
int locateelem(linklist , int); //查詢指定的值在哪個位置
int main(void)else
return 0;
} //初始化單鏈表
bool initlist(linklist &l)
l->next = null;
return true;
} //遍歷單鏈表
void output(linklist l)
} //判斷單鏈表是否為空
bool empty(linklist l)else
} //在指定的位置插入資料
bool listinsert(linklist &l ,int i , int e)
node *p = l;
int j = 0;
while(p != null && j < i-1)
if(p == null)
node *s = (node*)malloc(sizeof(node));
s->data = e;
s->next = p->next;
p->next = s;
return true;
} //在指定節點前面插入資料
bool hlistinsert(linklist &l , int i , int e)
node *p = l;
int j = 0;
while(p != null && j < i)
if(p == null)
node *s = (node *)malloc(sizeof(node));
s->data = p->data;
p->data = e;
s->next = p->next;
p->next = s;
return true;
} //在指定節點後面插入資料
bool rlistinsert(linklist *l , int i , int e)
node *p = *l;
int j = 0;
while(p != null && j < i)
if(p == null)
node *s = (node *)malloc(sizeof(node));
s->next = p->next;
p->next = s;
s->data = e;
}//刪除指定位置的資料
bool listdelete(linklist &l , int i , int &e)
node *p = l;
int j = 0;
while(p != null && j < i-1)
if(p == null || p->next == null)
node *q = p->next;
e = q->data;
p->next = q->next;
free(q);
return true;
} //頭插法
bool headinsert(linklist l , int e)
//查詢指定位置的值
node* getelem(linklist l , int i)
node *p = l;
int j = 0;
while(p != null && j < i)
return p;
}//查詢指定的值在哪個位置
int locateelem(linklist l , int e)
if(p == null)else
}
帶頭節點單鏈表的操作
我們來看單鏈表的銷毀,排序,逆置 首先還是來看一下單鏈表的銷毀 我們能不能將單鏈表的操作像順序表一樣直接將他的size變成0然後直接釋放掉指向他的空間?void listdestory slist psl 我們知道鍊錶儲存資料最大的不同就是不是一段連續的空間,如果釋放鍊錶空間,需要釋放每乙個節點的空...
單鏈表的操作(帶頭節點)
typedef struct lnodelnode,linklist 鍊錶的各種具體操作函式 bool initlist linklist l 鍊錶的初始化 bool empty linklist l 判斷鍊錶是否為空 intlength linklist l 求單鏈表的長度 bool listin...
帶頭節點的單鏈表
需要注意 include define maxlen 20 define elementtype char using namespace std typedef struct slnode node 函式宣告 void initiallist node l int listlength node ...