ダイナミックな双方向リンクリスト

文の基本的な要素

#include <stdio.h>
#include <stdlib.h>

#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0

typedef int Status;
typedef int ElemType;

typedef struct DuLNode
{
    ElemType data;
    struct DuLNode * prior;
    struct DuLNode * next;
}DuLNode,*DuLinkList;

逆の順序でダイナミックな双方向リンクリストを作成します。

アイコン:リストが空である場合、第1のインサート要素が

示さ:リストが空でない場合、追加の要素を挿入します

void CreateDuList(DuLinkList *L, int n)
{
    *L = (DuLinkList)malloc(sizeof(DuLNode)); /* 创建头结点 */
    (*L)->next = NULL;
    (*L)->prior = NULL;

    DuLinkList p;
    if(n>0) {  /* 如果是第一个结点 */
        p = (DuLinkList)malloc(sizeof(DuLNode));
        scanf("%d",&p->data);
        p->next = (*L)->next;
        p->prior = (*L);
        (*L)->next = p;
        n--;
    }
    for( ; n>0; n--) {
        p = (DuLinkList)malloc(sizeof(DuLNode));
        scanf("%d",&p->data);
        p->next = (*L)->next;
        p->prior = (*L);        /* 新结点p先指向两边两个 */
        (*L)->next->prior = p;  /* 后一个prior指针指向p */
        (*L)->next = p;         /* 前一个next指针指向p */
       
    }
}

おすすめ

転載: www.cnblogs.com/wjundong/p/11621644.html