📄 slist.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include "slist.h"
node_t make_node ( data_t data )
{
node_t
p_node;
p_node = (node_t) malloc ( sizeof ( node ) );
if ( p_node == NULL ) {
printf( "Error in make_node (),fail to call memory." );
exit ( -1 );
}
p_node->data = data;
p_node->next = NULL;
return p_node;
}
void free_node(node_t node)
{
if (node != NULL)
{
free(node->data);
free(node);
}
}
list_t init_list()
{
list_t list;
list = (list_t) malloc ( sizeof (list));
if (!list) exit(-1);
list->head = NULL;
list->len = 0;
return list;
}
int insert_node(list_t list , int n ,node_t p_node)
{
node_t p_temp;
int i;
if (n ==0)
{
p_node->next = list->head;
list->head = p_node;
list->len++;
return 0;
}
for (p_temp = list->head , i = 1 ; i < n; i++)
{
p_temp = p_temp->next;
}
p_node->next = p_temp->next;
p_temp->next = p_node;
list->len++;
return 0;
}
int delete_node(list_t list_p , int index)
{
node_t n_prev,n_next;
int i;
n_prev = list_p->head;
if (index == 1)
{
list_p->head = n_prev->next;
free_node(n_prev);
list_p->len--;
return 0;
}
n_next = n_prev->next;
for (i = 2 ; i < index; i++)
{
n_prev = n_next;
n_next = n_prev->next;
}
n_prev->next = n_next->next;
free_node(n_next);
list_p->len--;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -