C数据结构之单链表详细示例分析数据结构之单链表详细示例分析
代码如下:
#include <stdio.h>
#include <stdlib.h>
typedef struct type
{
int num;
struct type *next;
}TYPE;
//=============================================================
// 语法格式: TYPE *init_link_head(int n)
// 实现功能: 从头到尾,正序创建一个具有n个节点的链表,并对其值进行初始化
// 参数: n: 链表的长度,即节点的个数
// 返回值: 所创建链表的首地址
//=============================================================
TYPE *init_link_head(int n)
{
int i;
TYPE *phead = NULL, *pf = NULL, *pi = NULL;
for(i=0; i<n; i++)
{
pi = (TYPE *)malloc(sizeof(TYPE));
printf(“please inout num:”);
scanf(“%d”,&pi->num);
if(i == 0)
pf = phead = pi;
else
{
pf->next = pi;
pf = pi;
}
pi->next = NULL;
}
return phead;
}
//=============================================================
// 语法格式: TYPE *init_link_end(int n )
// 实现功能: 从尾到头,倒序创建一个具有n个节点的链表,并对其值进行初始化
// 参数: n: 链表的长度,即节点的个数
// 返回值: 所创建链表的首地址
//=============================================================
TYPE *init_link_end(int n )
{
TYPE *phead = NULL, *pi = NULL;
int i ;
for(i=0; i<n; i++)
{
pi = (TYPE *)malloc(sizeof(TYPE));
printf(“please inout num:”);
scanf(“%d”,&pi->num);
if(i == 0)
pi->next = NULL;
else
pi->next = phead;
phead = pi;
}
return phead;
}
//=============================================================
// 语法格式: insert_link(TYPE * phead,TYPE * pi)
// 实现功能: 将新申请的节点加入到指定链表中
// 参数: *phead:待插入链表
// * pi:带插入节点
// 返回值: 插入指定节点后的新链表首址
//=============================================================
TYPE * insert_link(TYPE *phead, TYPE *pi)