鍊錶學習筆記 雙向鍊錶

2021-07-01 19:08:41 字數 3774 閱讀 4247

這次**寫的是迴圈鍊錶,用的是節點連線。

雙向鍊錶相比與一般鍊錶要注意的地方就是 頭部插入和尾部插入 不要進行空指標操作。

//非鍊錶尾部的處理

if (next != null)

node->pre = current;

//如果是在頭部插如 則沒有 前節點

if (i == 0)

tlist->lenght++;

return 0;

}dlinklistnode* dlinklist_delete(dlinklist* list, int pos)

if (pos > tlist->lenght - 1)

current = (dlinklistnode*)&(tlist->header);

for (i = 0; i < pos && current->next != null; i++)

ret = current->next;

if (ret == tlist->slider)

next = current->next->next;

current->next = next;

ret->next = null;

ret->pre = null;

if (next != null)

if (i == 0)

tlist->lenght--;

return ret;

}dlinklistnode* dlinklist_postion(dlinklist *list)

return tlist->slider;

}dlinklistnode* dlinklist_next(dlinklist *list)

tlist->slider = tlist->slider->next;

return tlist->slider;

}dlinklistnode* dlinklist_pre(dlinklist *list)

tlist->slider = tlist->slider->pre;

return tlist->slider;

}

#include#include#include#include"dlink.h"

typedef struct _tag_teacher

teacher;

int main()

//for (i = 0; i < size; i++)

// /*teacher *temp = null;

temp = (teacher*)dlinklist_delete(list, 2);

printf("the age of teacher is %d\n", temp->age);

temp = (teacher*)dlinklist_delete(list, 0);

printf("the age of teacher is %d\n", temp->age);

temp = (teacher*)dlinklist_delete(list, 0);

printf("the age of teacher is %d\n", temp->age);*/

teacher *temp = null;

temp = (teacher*)dlinklist_postion(list);

printf("the age of teacher is %d\n", temp->age);

temp = (teacher*)dlinklist_next(list);

printf("the age of teacher is %d\n", temp->age);

temp = (teacher*)dlinklist_pre(list);

printf("the age of teacher is %d\n", temp->age);

system("pause");

return 0;

}

雙向鍊錶學習筆記

1.鍊錶介面定義 package com.ncs.datastructure.linklist public inte ce ilinklist 2.雙向鍊錶的簡單實現 package com.ncs.datastructure.linklist import com.ncs.datastructu...

雙向鍊錶學習筆記

利用雙向鍊錶可以避免單鏈表的缺點,單鏈表的缺點就是查詢指標p指向的節點,必須從指標p開始遍歷整個鍊錶一遍,時間複雜度為o n 雙向鍊錶的每個節點有兩個指標乙個指標指向前驅節點,另乙個指向後繼節點 在雙向迴圈鍊錶中每個節點包括3個域,data域,prior域,next域。雙向鍊錶也分為帶頭節點和不帶頭...

雙向鍊錶(鍊錶)

雙向鍊錶 每個節點包含指向後繼節點的指標和指向前驅節點的指標。繼承關係圖 實體圖 duallinklist.h duallinklist 雙向鍊錶類模板 成員變數 node 節點實體 m header 頭節點 m length 鍊錶長度 m step 步進長度 m current 當前節點前乙個節點...