迴圈雙鏈表基本操作

2022-07-16 04:30:18 字數 1568 閱讀 1833

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