雙向鏈表反轉(zhuǎn)

雙向鏈表反轉(zhuǎn)

  • 初始化
  • 輸出
  • 反轉(zhuǎn)

實現(xiàn)代碼

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

struct list {
        int data;
        struct list *prev;
        struct list *next;
};

struct list* list_init(int n)
{
        int i;
        size_t size = 0;
        struct list *pn = NULL;
        struct list *p = NULL;

        size = sizeof(struct list);
        if(n <= 0) {
                return NULL;
        } else {
                p = malloc(size);
                p->data = 0;
                p->next = NULL;
                p->prev = NULL;
        }
        pn = p;

        for(i=1; i<n; i++) {
                p->next = malloc(size);
                p->next->prev = p;
                p = p->next;
                p->data = i;
        }
        p->next = NULL;

        return pn;
}

void list_print(struct list* pn)
{
        struct list *p = NULL;
        printf("output:\n");
        while(pn) {
                printf("%2d ", pn->data);
                p = pn;
                pn = pn->next;
        }
        printf("\nreverse output:\n");
        while(p) {
                printf("%2d ", p->data);
                p = p->prev;
        }
        printf("\n");
}

struct list* list_reverse(struct list* pn)
{
        struct list *q = NULL;
        struct list *p = NULL;

        while(pn) {
                p = pn->next;
                pn->next = q;
                pn->prev = p;
                q = pn;
                pn = p;
        }
        return q;
}

int main(int argc, char** argv)
{
        int ret;
        int len;
        struct list *head = NULL;

        printf("input length:");
        scanf("%d", &len);

        head = list_init(len);
        list_print(head);

        head = list_reverse(head);
        list_print(head);
        return ret;
}

尚未實現(xiàn)

  • 插入元素
  • 刪除元素

雙向鏈表反轉(zhuǎn)實在是沒有必要,應(yīng)該是僅在面試筆試時才回出現(xiàn)的吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容