1. 给定一个数组,使用数组中的元素创建双向链表中节点的数据域创建双向链表
2. 思路分析:
① 因为使用的是C语言,所以需要使用结构体来封装当前节点的上一个节点,下一个节点,节点的元素值
② 可以创建链表的头结点,这样的话操作起来会比较方便,声明一个指针用来指向当前链表的最后一个节点,这样在插入新的节点的时候就可以往链表的尾部进行追加
3. 下面是具体的代码:
#include<iostream>
#include<malloc.h>
using namespace std;
struct DoubleLinkList{
DoubleLinkList *prior;
DoubleLinkList *next;
int data;
};
DoubleLinkList *dbList;
int main(void){
int arr[8] = {1, 2, 3, 4, 5, 6, 7, 8};
dbList = (DoubleLinkList *)malloc(sizeof(DoubleLinkList));
dbList->prior = NULL;
dbList->next = NULL;
DoubleLinkList *p = dbList;
for(int i = 0; i < 8; ++i){
DoubleLinkList *newNode = (DoubleLinkList *)malloc(sizeof(DoubleLinkList));
newNode->data = arr[i];
newNode->next = NULL;
p->next = newNode;
newNode->prior = p;
//指针往下移动一位
p = newNode;
}
p = dbList->next;
while(p != NULL){
cout << p->data << " ";
p = p->next;
}
return 0;
}