双链表指针插入到底有没有顺序

img

1.双链表是只有种方式来插入吗,还是可以用多种方法?
2.有哪几种方式可以举列子吗?
3.操作指针有没有定义的模式,还是定义了指针和莫类型的表就可以随意利用指针达到想创建链表的类型?

双链表只有一种插入方式,主要是弥补单链表的缺陷,2头都可以方便查找。

双链表与单向链表相比有以下优势:插入删除不需要移动元素,可以原地插入删除,可以双向遍历,**有头插和尾插以及按值插入。**双向链表也是采用的链式存储结构,它与单链表的区别就是每个数据结点中多了一个指向前驱元素的指针域。
至于创建:

//初始化双链表
void InitDList(List *list)
{
    //申请头结点
    Node *s = (Node *)malloc(sizeof(Node));
    assert(s != NULL);
    //初始化时管理结点头指针和尾指针都指向头结点
    list->first = list->last = s;
    //头结点的前驱指针域和后继指针域都先赋值为空
    list->last->next = NULL;
    list->first->prio = NULL;
    //此时还没有有效结点
    list->size = 0;
}