能不能给我一个完整的简单的能运行的C++链表使用样例?

来源:百度知道 编辑:UC知道 时间:2024/09/20 11:34:07
用结构体或者类都可以的,简单易懂,完整明了,谢谢啦!

typedef unsigned int uint32;

typedef struct node
{
struct node *pre;
struct node *next;
}NODE;

typedef struct list_head
{
uint32 NodeNum;
struct node node;
}LIST_HEAD;

/*插入节点到链表的尾部,
参数1 head: 链表的头指针
参数2 node: 新插入的节点指针
返回值 0------>错误返回
1------>正确插入
*/
uint32 insert2list(LIST_HEAD *head, NODE *node)
{
if(head == NULL || node == NULL)
{
assert(0);
return 0;
}

/*不能插入头节点*/
if(node == &head->node)
{
assert(0);
return 0;
}

if(node->next != NULL || node->pre != NULL)
{
delOutOfList(head, node);
}

if(head->NodeNum == 0)
{
head->node.next = node;
head->node.pre = node;
head->node.next = node;
node->pre = &head->node;
node->next = &head->node;