C語言實現的單向鍊錶

2021-05-27 15:00:51 字數 2436 閱讀 4502

/**

* @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 逆序建立 兩種情況 當鍊表為空時,將煉表頭直接指向新加入的節點及第乙個節點 當鍊...