(转)一个简单的带头尾指针单向链表(C实现)
用C写了一个带头尾指针的单向链表,仅在尾部进行插入操作,在任意位置进行删除操作。因为只用到这么些功能,又因为懒,所以没有扩展。因为插入是固定在尾部进行,带一个尾指针的好处是显而易见的。当然删除时要付出一些开销。
list.h
-------------------------------------------
/* list.h
** Copyright 2004 Coon Xu.
** Author: Coon Xu
** Date: 06 Sep 2004
*/
#ifndef LIST_H
#define LIST_H
#include <stdio.h>
#include <stdlib.h>
struct listnode
{
struct listnode* next;
int data;
};
struct list
{
struct listnode* head;
struct listnode* tail;
int count;
};
void list_init(struct list*);
void list_insert(struct list*, struct listnode*);
int list_delete(struct list*, struct listnode*);
#endif
------------------------------------------
list.c
------------------------------------------
/* list.c
** Copyright 2004 Coon Xu.
** Author: Coon Xu
** Date: 06 Sep 2004
*/
#include "list.h"
void list_init(struct list* myroot)
{
myroot->count = 0;
myroot->head = NULL;
myroot->tail = NULL;
}
void list_insert(struct list* myroot, struct listnode* mylistnode)
{
myroot->count++;
mylistnode->next = NULL;
if(myroot->head == NULL)
{
myroot->head = mylistnode;
myroot->tail = mylistnode;
}
else
{
myroot->tail->next = mylistnode;
myroot->tail = mylistnode;
}
}
int list_delete(struct list* myroot, struct listnode* mylistnode)
{
struct listnode* p_listnode = myroot->head;
struct listnode* pre_listnode;
//myroot is empty
if(p_listnode == NULL)
{
return 0;
}
if(p_listnode =
相关文档:
C语言的回调函数思想代码:
#include <stdio.h>
void *max(void *base, unsigned int nmemb, unsigned int size,
int (*compar)(const void *, const void *))
{
int i;
void* max_data = base;
char* tmp = base;
&nbs ......
C/C++底层实现指定磁盘只读 收藏
燕狂徒写的驱动挂钩,限制磁盘只读, 用于保证涉密计算机的稳定,相当于将磁盘变成ROM #include "ntddk.h"
#include
#include #define DRIVERNAME "OnlyRead(GongXiPeng!)" // for use in messages typedef struct tagDEVICE_EXTEN ......
source: http://blog.renren.com/blog/229071289/443686923
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面 ......
/*=================================
.* The Standard include file.
.*
.*===============================*/
#include <stdio.h>
#include <stdlib.h>
/*=================================
.*
.* The extend include file.
.*
.*===============================*/
#include "sqlit ......