该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
怎么错误了 ? 提示是p->prior->next = s; 错误
#include
#include
typedef int elemtype;
typedef struct dulnode //双向链表
{
elemtype data;
struct dulnode *prior; //前驱元素指针
struct dulnode *next; //后续元素结点
}*dulinklist;
void ini(dulinklist &l) //创建
{
l = (dulnode *)malloc(sizeof(dulnode));
if (!l)
printf("内存空间申请失败");
l->next = NULL;
}
void listlnsert_dul(dulinklist &l, int i, elemtype e) //插入
{
dulinklist p, s;
p = l;
s = (dulnode *)malloc(sizeof(dulnode));
if (!s)
printf("内存空间申请失败");
s->data = e;
s->prior = p->prior;
p->prior->next = s;
s->next = p;
p->prior = s;
}
void print_dul(dulinklist &l) //输出
{
dulinklist p;
p = l;
p = l->next;
while (p)
{
printf("%d", p->data);
p = p->next;
}
}
int main()
{
dulinklist l;
ini(l);
for (int i = 1; i < 6; i++)
listlnsert_dul(l, i, i);
print_dul(l);
getchar();
}