完善insert函数执行

完善insert函数执行,第1张

完善insert函数执行
#include
#include
#include

typedef struct node
{
	struct node* prev;//前一个结点
	int data;
	struct node* next;//下一个结点
}*PNODE, NODE;

PNODE create(int data)
{
	PNODE p = (PNODE)malloc(sizeof(NODE));//定义一个结点
	p->prev = NULL;
	p->data = data;
	p->next = NULL;  
	return p;
}
PNODE header;//头结点
PNODE ender;//尾结点
void add(PNODE node)//尾部追加
{
	if (header == NULL)//空表
	{
		header = node;
		ender = node;
		return;
	}
	ender->next = node;
	ender = node;
}



void insert_behind(int index, PNODE node)//index 下标,node 新结点
{
	PNODE p = header;//开始指向头结点
	if (header == NULL)//头结点为空
	{
		add(node);
		return; //if中使用return,提前结束函数执行
	}

	for (int i = 0; i < index && p != NULL; i++)
	{
		p = p->next;
	}
	if (p == NULL)//p超过范围,调用add函数,加到最后位置
	{
		add(node);
		return;
	}
	//在p的后面插入
	node->next = p->next;
	p->next = node;
	if (node->next == NULL)//当新结点被插到最后,尾结点就是node;
	{
		ender = node;
	}
	
}

	int main() {
		ender = header = NULL;
		add(create(1));//0
		add(create(2));//1
		add(create(3));//2
		add(create(4));//3
		insert_behind(10, create(666));
		{
			PNODE p = header;
			while (p != NULL)
			{
				printf("%dn", p->data);
				p = p->next;
			}
		}

		return 0;
	
 }

	

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5503877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存