#include <iostream>
using namespace std;
const int max_size = 1000;
typedef struct DNode{
int data;
DNode *prior;
DNode *next;
} DNode,*DLinkList;
void init(DLinkList &L,int n)
{
L = (DLinkList)malloc(sizeof(DNode));
scanf("%d",&L->data);
L->prior = NULL;
L->next = NULL;
for (int i = 0; i<n-1; i++) {
DLinkList node = (DLinkList)malloc(sizeof(DNode));
scanf("%d",&(node->data));
if (i==0) {
L->prior = node;
L->next = node;
node->next = L;
node->prior = L;
}else
{
L->next->prior = node;//这句必须在前三句之前,自己画一个表模拟一下就明白了
node->next = L->next;
node->prior = L;
L->next = node;
}
}
}
void PrintList(DLinkList L)
{
//L = L->prior;
for (int i = 0; L; ++i) {
cout<< L->data<<" "<<flush;
L = L->prior;//这里使用next也可以,因为是循环链表
if (i==10) {
break;
}
}
cout<<endl;
}
int main()
{
DLinkList listA;
init(listA, 5);
PrintList(listA);
return 0;
}
循环链表的构建
最新推荐文章于 2023-07-27 20:13:57 发布