#includeusing namespace std;typedef char elemtype;
typedef struct dnode
dlinknode;
void createlistf(dlinknode *&l,elemtype a,int n)//頭插法建立
s = l->next;
while(s->next != null)
//s指向尾結點
s->next = l;
l->prior = s;
}void createlistr(dlinknode *&l,elemtype a,int n )//尾插法建立
r->next = l;
l->prior = r;
}void initlist(dlinknode *&l)
void destorylist(dlinknode *&l)
free(pre);
}bool listempty(dlinknode *l)
int listlength(dlinknode *l)
return (j);
}void displist(dlinknode *l)
cout
if(i <= 0 || l->next == l)
if(i == 1)//i == 1 特殊情況
else
if(p == l)//沒有找到
else//找到第i個
}}int locateelem(dlinknode *l,elemtype e)
if(p == null)//不存在,返回false
else
}bool listinsert(dlinknode *&l,int i ,elemtype e)//插入第i個元素
if(p->next == l)//若煉表為空時
else if(i == 1)//l不為空 i == 1
else//i !=1
if(p == l)
else
s->prior = p;
p->next = s;
return true;}}
}bool listdelete(dlinknode *&l,int i ,elemtype &e)
if(i == 1)//i == 1 特殊情況處理
else
if(p == null)//未找到i-1 個結點
else//找到i-1 個結點
e = q->data;//刪除q
p->next = q->next;
if(p->next != null)
p->next->prior = p;
free(q);//釋放q
return true;}}
}int main()
{ dlinknode *l;
elemtype e;
cout運算結果
雙鏈表基本操作
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...