迴圈雙鏈表

2021-10-05 19:43:48 字數 1094 閱讀 7203

迴圈雙鏈表的定義和基本運算

#include #include typedef int elemtype;

typedef struct dnode //定義雙鏈表結點型別

dlinklist;

void createlistf(dlinklist *&l,elemtype a,int n)

//頭插法建雙鏈表

}void createlistr(dlinklist *&l,elemtype a,int n)

//尾插法建雙鏈表

r->next=null; //終端結點next域置為null

}void initlist(dlinklist *&l)

void destroylist(dlinklist *&l)

free(p);

}bool listempty(dlinklist *l)

int listlength(dlinklist *l)

return(i);

}void displist(dlinklist *l)

printf("\n");

}bool getelem(dlinklist *l,int i,elemtype &e)

if (p==null)

return false;

else }

int locateelem(dlinklist *l,elemtype e)

if (p==null)

return(0);

else

return(n);

}bool listinsert(dlinklist *&l,int i,elemtype e)

if (p==null) //未找到第i-1個結點

return false;

else //找到第i-1個結點*p }

bool listdelete(dlinklist *&l,int i,elemtype &e)

if (p==null) //未找到第i-1個結點

return false;

else //找到第i-1個結點*p

}

迴圈雙鏈表應用

問題描述 設非空線性表ha和hb都用帶頭節點的迴圈雙鏈表表示。設計乙個演算法insert ha,hb,i 其功能是 i 0時,將線性表hb插入到線性表ha的最前面 當i 0時,將線性表hb插入到線性表ha中第i個節點的後面 當i大於等於線性表ha的長度時,將線性表hb插入到線性表ha的最後面。請在實...

C 迴圈雙鏈表

雙鏈錶比單鏈表多了乙個prev指標域,用來指向乙個節點的前乙個節點,操作起來比單鏈表快捷許多,可以從前從後遍歷整個鍊錶。程式 include include typedef struct dbnode dbnode typedef dbnode dblink void create empty li...

迴圈雙鏈表演算法

設乙個帶頭結點的迴圈雙鏈表 dl,結點的值可能重複。設 計乙個演算法輸出 dl 所有元素的值,引數 d 0 時按照前驅方向輸出,d 1 時按照 後繼方向輸出。記得那次作業裡有乙個寫的很麻煩沒啥意思好像就是這個 建立乙個迴圈單鏈表,然後設乙個輸出函式 include include include d...