/**
* @file gm_slink.h
* @brief 提供了常用的單向鍊錶操作介面
* @author don hao
* @date 2011-8-21 9:38:03
* @version
*email:[email protected]*
company:
*
modification:*
write modifications here.*/
#ifndef _gm_slink_h
#define _gm_slink_h
#include #ifdef __cplusplus
extern"c"
#endif /**< __cplusplus */
#endif /**< _gm_link_h */
/**
* @file link.c
* @brief
* @author don hao
* @date 2011-8-22 9:38:59
* @version
*email:[email protected]*
company:
*
modification:*
write modifications here.*/
#include "gm_slink.h"
typedef struct link
link_struct;
static link_struct* head = null;
static int count = 0;
static link_struct* createnode(int value)
int gm_slink_get_length()
int gm_slink_add_head( int value )
if (null == head)
else
++count;
return 1;
}int gm_slink_add_tail( int value )
while (null != node->next)
newnode = createnode(value);
if (null == newnode)
node->next = newnode;
++count;
return 1;
}int gm_slink_get_value( int index, int* pvalue)
for (i = 0; i <= index; ++i)
if (null == node)
if (i == index)
node = node->next;
}return 1;
}int gm_slink_remove_head()
node = head;
head = node->next;
free(node);
node = null;
--count;
return 1;
}int gm_slink_remove_tail()
while (null != node->next)
prenode->next = null;
free(node);
node = null;
--count;
return 1;
}int gm_slink_remove( int index )
for (i = 0; i <= index; ++i)
if (null == node)
if (i == index)
else
free(node);
node = null;
--count;
return 1;
}prenode = node;
node = node->next;
}return 1;
}int gm_slink_remove_all()
return 1;
}/* for test
int main()
gm_slink_get_value(5, &i);
gm_slink_remove_head();
gm_slink_remove_tail();
gm_slink_remove_head();
gm_slink_remove_tail();
gm_slink_remove(0);
gm_slink_remove(1);
}*/
單向迴圈鍊錶C語言實現
我們都知道,單向鍊錶最後指向為null,也就是為空,那單向迴圈鍊錶就是不指向為null了,指向頭節點,所以下面這個程式執行結果就是,你將會看到遍歷鍊錶的時候就是乙個死迴圈,因為它不指向為null,也是周而復始的執行。串成了乙個環型。include include typedef struct nod...
反轉單向鍊錶 java 語言實現
演示翻轉鍊錶的兩種典型實現,使用泛型。author shan create 2016 09 01 11 46 public class reversesinglylist nodenewhead reverse current.getnextnode current.getnextnode setn...
單向鍊錶之建立新增(C語言實現)
建立方式 順序建立 新加入的放在尾部 逆序建立 新加入的放在頭部 1 順序建立 兩種情況 當鍊表為空時,將煉表頭直接指向新加入的節點及第乙個節點 當鍊表不為空時,首先遍歷鍊錶找到鍊錶尾節點,然後將新加入的點掛在尾部。2 逆序建立 兩種情況 當鍊表為空時,將煉表頭直接指向新加入的節點及第乙個節點 當鍊...