⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slist.cpp

📁 多项式运算
💻 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 + -