資料結構那點事 線性表(迴圈列表)

2021-08-28 10:14:07 字數 745 閱讀 1809

#includeusing namespace std;

//迴圈鍊錶的儲存結構

typedef struct dulnode

dulnode,*dulinklist;

//由於迴圈鍊錶和單鏈表的查詢沒有區別,可以參考我上期的單鏈表的操作

//主要編寫一下刪除和插入操作

status listinsert(linklist *l,int i,elemtype e)

if(j>i||!p)

s=(linklist)malloc(sizeof(node));

s->data=e;

//主要的區別

//順序為插入節點先先驅,後後驅;再舊結點的先先驅。後後驅

s->prior=p;

s->next=p->next;

p->next->prior=s;

p->next=s;

return ok;

} //刪除元素操作

status listdelete(linklist *l,int i,elemtype *e)

if(j>i||!p)

q=p->next;

*e=q->data;

//改變的地方

q->prior->next=q->next;

q->next->prior=q->prior;

free(q);

return ok;

}

線性表之迴圈列表

迴圈鍊錶 迴圈鍊錶與單鏈表的區別僅僅在於其尾結點的鏈域值不是null,而是指向首節點節點的 作用。public class clink 新增 public void addnode string data p p.next while p.next head.next node temp new n...

資料結構那點事 線性表(順序表)

includeusing namespace std 線性表的資料結構 define maxsize 20 typedef int elemtype typedef struct int length sqlist define ok 1 define error 0 define true 1 d...

資料結構 雙向列表與迴圈列表

從迴圈鍊錶的任意乙個結點出發都可以找到鍊錶中的其它結點,使得表處理更加方便靈活。迴圈鍊錶的操作 對於單迴圈鍊錶,除鍊錶的合併外,其它的操作和單線性鍊錶基本上一致,僅僅需要在單線性鍊錶操作演算法基礎上作以下簡單修改 判斷是否是空鍊錶 head next head 判斷是否是表尾結點 p next he...