出了点问题
//双向链表的插入,创建,删除,长度。
#include <bits/stdc++.h>
using namespace std;
#define ok 1
#define error 0
typedef struct dnode
{
int data;
struct dnode *last;
struct dnode *next;
} dnode, *lilinst;
int chushihua(lilinst &l)
{
l = new dnode;
l->last = NULL;
l->next = NULL;
return ok;
}
int length(lilinst &l)
{
if (l == l->last || l == l->next)
{
return error;
}
dnode *p;
p = l->last;
int i = 0;
while (p != l)
{
i++;
p = p->last;
}
return i;
}
bool insert(lilinst &l, int i, int e)
{
//插入新的元素在第i个节点
dnode *p, *s;
p = l->next;
int j = 0;
while (p != l && j < i - 1)
{
j++;
p = p->next;
}
if (p == l || j > i - 1)
{
return false;
}
s = new dnode;
s->data = e;
s->next = p->next;
p->next->last = s;
p->next = s