雙鏈表的基本操作

2021-05-27 21:22:48 字數 1015 閱讀 2174

雙鏈表在最末端的插入和刪除要特別對待。

#include

using namespace std;

typedef int elemtype;

//定義雙鏈表節點型別

typedef struct node

dnode,*dlinklist;

dlinklist dlinklistcreate()

p->next = null;

return head;

}//雙鏈表長度

int dlinklistlength(dlinklist l)

return i;

}//雙鏈表的查詢,查詢元素為x的位置

int dlinklistfind(dlinklist l,elemtype x)

if(p == null)

return 0;

else return i;

}//雙鏈表的插入,在雙鏈表第index個位置插入值為x的元素

void dlinklistinsert(dlinklist &l,int index,elemtype x)

else}}

//刪除指定位置index處的資料

void dlinklistdelindex(dlinklist &l,int index)

if(p->next->next == null)//如果刪除最後乙個元素,特殊處理,最後元素的next為null,沒有prior。

else}}

//刪除所有值為x的元素

void dlinklistdelelem(dlinklist &l,elemtype x)

else

p = p->next;

free(q);

}else

p = p->next;}}

void dlinklistprint(dlinklist l)

}//逆序列印

void dlinklistprintrev(dlinklist l)}

int main()

雙鏈表基本操作

1.在頭接點插入指定的值 template void insertd dnode front,const t value 2.顯示所有接點數值 template void showd dnode front 3.刪除接點 template void deleted dnode lhs 4。刪除指定資...

雙鏈表基本操作

看歐立奇的 程式設計師面試寶典 的雙向鍊錶部分,發現其中建立雙向鍊錶和刪除鍊錶中得某一點的程式存在問題,現將已經除錯通過的程式貼在下面 include using namespace std define len sizeof dnode typedef struct doublenode dnod...

雙鏈表基本操作

include include using namespace std define null 0 define maxsize 50 struct strlnode void create struct strlnode p,int x 建立雙鏈表 表頭節點 void insertnode str...