這次**寫的是迴圈鍊錶,用的是節點連線。
雙向鍊錶相比與一般鍊錶要注意的地方就是 頭部插入和尾部插入 不要進行空指標操作。
//非鍊錶尾部的處理
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 當前節點前乙個節點...