您的位置 首页 技术

单向链表使用函数

注意:创建节点,一定要销毁节点。includestdioh>includestdlibh>typedefstructnode{intdata;structnode*next

留意:创立节点,一定要毁掉节点。

#include
#include
typedef struct node{
intdata;
structnode *next;
} node_t;
// 创立节点函数
void *create(int size);
// 初始化链表
int init(node_t *head);
// 头刺进法
int insert_head(node_t *head,node_t *pn);
// 尾刺进法
int insert_end(node_t *head,node_t *pn);
// 打印一切节点内容
void print(node_t *head);
// 毁掉一切节点
void destroy(node_t *head);
// 使用函数
// 创立长度为 len 的链表并输入内容
int create_link(node_t *head,int len);
int main()
{
node_t*head = NULL;
intlen = 0;
if(init(head= create(sizeof(node_t))) != 0){
printf(“初始化链表失利”);
exit(0);
}
printf(“长度:”);
scanf(“%d”,&len);
create_link(head,len);
print(head);
destroy(head);
free(head);
head= NULL;
return0;
}
// 创立节点函数
// 成功回来新节点首地址,失利回来 NULL
void *create(int size)
{
returncalloc(1,size);
}
// 初始化链表
// 0-成功 1-失利
int init(node_t *head)
{
if(NULL== head)
return1;
head->next= NULL;
return0;
}
// 头刺进法
// 0-成功 1-失利
int insert_head(node_t *head,node_t *pn)
{
if(NULL== pn)
return1;
pn->next= head->next;
head->next= pn;
return0;
}
// 尾刺进法
// 0-成功 1-失利
int insert_end(node_t *head,node_t *pn)
{
node_t*tail = NULL;
if(NULL== pn)
return1;
tail= head;
while(tail->next!= NULL)
tail= tail->next;
tail->next= pn;
pn->next= NULL;
return0;
}
// 打印一切节点内容
void print(node_t *head)
{
node_t*cur = NULL;
cur= head->next;
while(cur!= NULL){
printf(“%d”,cur->data);
cur= cur->next;
}
printf(“”);
}
// 毁掉一切节点
void destroy(node_t *head)
{
node_t*del =NULL,*n_node = NULL;
del = head->next;
while(del != NULL){
n_node= del->next;
free(del);
del = n_node;
}
init(head);
}
// 使用函数
// 创立长度为 len 的链表并输入内容
// 回来创立的节点数
int create_link(node_t *head,int len)
{
inti = 0;
node_t*n_node = NULL;
printf(“输入 %d 个数:”,len);
for(i= 0;i < len;i++){
n_node= create(sizeof(node_t));//创立新节点
if(NULL== n_node)
returni;
scanf(“%d”,&n_node->data); // 输入数据
insert_end(head,n_node); // 刺进链表
}
returni;
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/317529.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部