C实现链表的算法
2012-04-12 16:49
183 查看
#include <cstdio>
#include <cstdlib>
typedef struct tagNODE // 链表的数据结构
{
int data;
struct tagNODE *next;
}NODE_t;
void insertNode(NODE_t **pHead, int dat) // 插入数据
{
NODE_t *pNode;
if(NULL == (pNode = (NODE_t *)malloc(sizeof(NODE_t))))
{
return;
}
pNode->data = dat;
pNode->next = *pHead;
*pHead = pNode;
}
void ShowLinkTable(NODE_t *pHead) // 打印数据
{
while(NULL != pHead)
{
printf("%d ", pHead->data);
pHead = pHead->next;
}
}
void destroyLink(NODE_t **pHead) // 删除链表
{
NODE_t *pNode;
while(NULL != *pHead)
{
pNode = *pHead;
*pHead = (*pHead)->next;
free(pNode);
}
}
int main(int argc, char* argv[])
{
NODE_t *Head1 = NULL;
NODE_t *Head2 = NULL;
insertNode(&Head1, 1);
insertNode(&Head2, 2);
insertNode(&Head1, 3);
insertNode(&Head2, 4);
ShowLinkTable(Head1);
ShowLinkTable(Head2);
destroyLink(&Head1);
destroyLink(&Head2);
return 0;
}
#include <cstdlib>
typedef struct tagNODE // 链表的数据结构
{
int data;
struct tagNODE *next;
}NODE_t;
void insertNode(NODE_t **pHead, int dat) // 插入数据
{
NODE_t *pNode;
if(NULL == (pNode = (NODE_t *)malloc(sizeof(NODE_t))))
{
return;
}
pNode->data = dat;
pNode->next = *pHead;
*pHead = pNode;
}
void ShowLinkTable(NODE_t *pHead) // 打印数据
{
while(NULL != pHead)
{
printf("%d ", pHead->data);
pHead = pHead->next;
}
}
void destroyLink(NODE_t **pHead) // 删除链表
{
NODE_t *pNode;
while(NULL != *pHead)
{
pNode = *pHead;
*pHead = (*pHead)->next;
free(pNode);
}
}
int main(int argc, char* argv[])
{
NODE_t *Head1 = NULL;
NODE_t *Head2 = NULL;
insertNode(&Head1, 1);
insertNode(&Head2, 2);
insertNode(&Head1, 3);
insertNode(&Head2, 4);
ShowLinkTable(Head1);
ShowLinkTable(Head2);
destroyLink(&Head1);
destroyLink(&Head2);
return 0;
}
相关文章推荐
- 二元查找树转变成排序的双向链表之C#算法实现
- Java数据结构与算法—及实现 线性表 顺序表、链表、栈、队列详解
- 给定一个单向链表(长度未知),请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素。实现这个算法,并为可能出现的特例情况安排好处理措施。“倒数第m个元素”是这样规定的:当m=0时,链表的
- 【LeetCode-面试算法经典-Java实现】【021-Merge Two Sorted Lists(合并两个排好序的单链表)】
- C++类模板 实现双向循环链表的基本算法 《数据结构》(C++版 北京科海)中摘抄
- 经典算法学习——链表实现冒泡排序
- 双向循环链表删除算法的C++程序实现
- 算法复习(6)链表实现的队列
- 用单链表结构实现算法2.2的程序
- 怎样编写一个程序,把一个有序整数数组放到二叉树中? 编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
- 单链表实现排序算法之插入排序
- java链表实现约瑟夫算法
- 【Java】给定一个有环链表,实现算法返回环路的开头结点
- 「算法精解_C语言描述」链表_循环链表的实现与分析
- 双向循环链表插入算法的C++程序实现
- 【算法设计-单链表的逆转】单链表逆转实现
- 【LeetCode-面试算法经典-Java实现】【141-Linked List Cycle(单链表中有环)】
- 设单链表以非递减有序排列,设计算法实现在单链表中删去值相同的多余结点。