双链表删除操作。#includeiostreamusing namespace std;#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status; typedef int ElemType;typedef struct DuLNode ElemType data; struct DuLNode prior;
在上述代码中,缺少了CreateDuList函数的具体实现,因此无法运行。下面给出一个可能的实现:
void CreateDuList(DuLinkList &L,int n) {
L = new DuLNode;
L->prior = NULL;
L->next = NULL;
DuLinkList p = L;
for (int i = 0; i < n; i++) {
DuLinkList newNode = new DuLNode;
cin >> newNode->data;
newNode->prior = p;
newNode->next = NULL;
p->next = newNode;
p = newNode;
}
}
这个实现中,首先创建头结点L,并将其前驱和后继指针都置为NULL。然后通过循环创建n个节点,并将节点的数据从输入中读入。每创建一个节点,都将其前驱指针指向前一个节点,将其后继指针置为NULL,并将前一个节点的后继指针指向当前节点。最后,将p指向最后一个节点。
在主函数中,首先读入n的值,然后调用CreateDuList函数创建双链表。接下来,读入要删除的节点的位置a,并调用ListDelete_DuL函数进行删除操作。最后,调用print函数打印双链表的数据。
原文地址: http://www.cveoy.top/t/topic/ja1X 著作权归作者所有。请勿转载和采集!