雙鏈表在最末端的插入和刪除要特別對待。
#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...