双向链表的插入和删除算法描述

#include <iostream> 
using namespace std;
typedef int elemtype;
typedef int status;
typedef struct dulnode
{
	elemtype data;
	dulnode *prior;
	dulnode *next;
}dulnode,*dullinklist;
//插入结点
status listinsert_dul(dullinklist &l, int i, elemtype e)
{
	if (!(p = getelem_nul(l, i)))
		return -1;
	dullinklist s;
	s = new dulnode;
	s->data = e;
	s->prior = p->piror;
	p->piror->next = s;
	s->next = p;
	p->piror = s;
	return 0;
}
//删除结点
status listdelete_dul(dullinklist &l,int i,elemtype e)
{
	if (!(p = getelem_nul(l, i)))
		return -1;
	p->piror->next = p->next;
	p->next->piror = p->piror;
	delete p;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43838785/article/details/89682772
今日推荐