#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...