大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專(zhuān)注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 用鏈表實(shí)現(xiàn)堆棧

用鏈表實(shí)現(xiàn)堆棧

更新時(shí)間:2022-12-01 10:25:09 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1634次

使用鏈表實(shí)現(xiàn)堆棧的過(guò)程

推送操作

在 Stack 中添加新節(jié)點(diǎn)稱(chēng)為推送操作。

在鏈表中壓入一個(gè)節(jié)點(diǎn)與在數(shù)組中插入一個(gè)元素是完全不同的。使用鏈表實(shí)現(xiàn)堆棧推送操作涉及幾個(gè)步驟:

首先創(chuàng)建一個(gè)節(jié)點(diǎn)并為其分配內(nèi)存。

如果列表為空,則該節(jié)點(diǎn)作為鏈表的第一個(gè)節(jié)點(diǎn)被推送。這個(gè)操作給節(jié)點(diǎn)的數(shù)據(jù)部分賦值,給節(jié)點(diǎn)的地址部分賦NULL。

如果某些節(jié)點(diǎn)已經(jīng)在鏈表中,那么我們必須在鏈表的開(kāi)頭添加一個(gè)新節(jié)點(diǎn),以免違反 Stack 的屬性。為此,將元素分配給新節(jié)點(diǎn)的地址字段并創(chuàng)建一個(gè)新節(jié)點(diǎn),該節(jié)點(diǎn)將成為列表的起始節(jié)點(diǎn)。

如果堆棧已滿,當(dāng)我們嘗試推送操作時(shí)會(huì)發(fā)生溢出情況。

空推()
{
 整數(shù)值;
 結(jié)構(gòu)節(jié)點(diǎn) *ptr1 = (結(jié)構(gòu)節(jié)點(diǎn)*)malloc(sizeof(結(jié)構(gòu)節(jié)點(diǎn)));
 如果(ptr1 == NULL)
 {
  print("無(wú)法推送節(jié)點(diǎn)");
 }
 別的
 {
 printf("輸入值");
 scanf(“%d”, &值);
 如果(開(kāi)始== NULL)
{
 ptr1 -> 值 = 值;
 ptr1 -> 下一個(gè) = NULL;
 開(kāi)始= ptr1;
 }
別的
{
 ptr1 -> 值 = 值;
 ptr1 -> next = 開(kāi)始;
 開(kāi)始= ptr1;
}
 print("數(shù)據(jù)元素被壓入");
}
}

彈出操作

從堆棧中刪除節(jié)點(diǎn)稱(chēng)為彈出操作。

鏈表中的彈出節(jié)點(diǎn)不同于數(shù)組中的彈出元素。執(zhí)行彈出操作涉及以下步驟:

在 Stack 中,節(jié)點(diǎn)從鏈表的末尾移除。因此,必須刪除存儲(chǔ)在頭指針中的值,并且該節(jié)點(diǎn)必須得到釋放。下面的鏈接節(jié)點(diǎn)現(xiàn)在將成為頭節(jié)點(diǎn)。

當(dāng)我們嘗試在 Stack 已經(jīng)為空時(shí)彈出操作時(shí),會(huì)發(fā)生下溢情況。如果列表的頭指針指向 NULL,則 Stack 將毫無(wú)意義。

彈出操作

從堆棧中刪除節(jié)點(diǎn)稱(chēng)為彈出操作。

鏈表中的彈出節(jié)點(diǎn)不同于數(shù)組中的彈出元素。執(zhí)行彈出操作涉及以下步驟:

在 Stack 中,節(jié)點(diǎn)從鏈表的末尾移除。因此,必須刪除存儲(chǔ)在頭指針中的值,并且該節(jié)點(diǎn)必須得到釋放。下面的鏈接節(jié)點(diǎn)現(xiàn)在將成為頭節(jié)點(diǎn)。

當(dāng)我們嘗試在 Stack 已經(jīng)為空時(shí)彈出操作時(shí),會(huì)發(fā)生下溢情況。如果列表的頭指針指向 NULL,則 Stack 將毫無(wú)意義。

空彈出()
{
 整數(shù)數(shù)據(jù);
 結(jié)構(gòu)節(jié)點(diǎn) *ptr1;
 如果(開(kāi)始== NULL)
{
 printf(“下溢條件”);
}
別的
{
 數(shù)據(jù) = 開(kāi)始 -> 值;
 ptr1 = 開(kāi)始;
 開(kāi)始 = 開(kāi)始 -> 下一步;
 免費(fèi)(ptr1);
 printf("dta 元素彈出");
}
}

空白打印
{
 詮釋 x;
 結(jié)構(gòu)節(jié)點(diǎn) *ptr1;
 ptr1 ==開(kāi)始;
 如果(ptr1 == NULL)
{
 printf("空棧");
}
 別的
{
 printf(“顯示堆棧元素”);
 同時(shí)(ptr1!= NULL)
{
 printf(“%d”, ptr1 -> 值);
 ptr1 = ptr1 -> 下一個(gè);
}
}
}

使用鏈表實(shí)現(xiàn)堆棧的優(yōu)缺點(diǎn)

使用鏈表的堆棧實(shí)現(xiàn)有一些優(yōu)點(diǎn)和缺點(diǎn):

使用鏈表實(shí)現(xiàn)堆棧的優(yōu)點(diǎn)

動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)

鏈表是一種動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),因此它可以在運(yùn)行時(shí)通過(guò)分配和釋放內(nèi)存來(lái)增長(zhǎng)和收縮。

插入和刪除

與數(shù)組不同,我們不必在插入和刪除內(nèi)容后移動(dòng)元素。通過(guò)更新節(jié)點(diǎn)的下一個(gè)指針中存在的地址,鏈表中的插入和刪除相對(duì)容易。

沒(méi)有內(nèi)存浪費(fèi)

在鏈表中,可以在運(yùn)行時(shí)增加和減少大小,從而不會(huì)浪費(fèi)內(nèi)存。

使用鏈表的堆棧實(shí)現(xiàn)的缺點(diǎn)

內(nèi)存使用情況

需要更多的內(nèi)存來(lái)存儲(chǔ)鏈表中的元素,因?yàn)殒湵碇械拿總€(gè)節(jié)點(diǎn)都包含一個(gè)指針,并且它本身需要額外的內(nèi)存。

遍歷

鏈表中的節(jié)點(diǎn)遍歷非常棘手。比如我們要訪問(wèn)位置n的節(jié)點(diǎn),那么就得遍歷它之前的所有節(jié)點(diǎn)。所以訪問(wèn)一個(gè)節(jié)點(diǎn)所需的時(shí)間很大。

反向移動(dòng)

使用鏈表在堆棧實(shí)現(xiàn)中反向遍歷非常棘手,因?yàn)榉聪蛑羔樞枰~外的內(nèi)存,因此會(huì)浪費(fèi)內(nèi)存。

至此,我們使用鏈表文章完成了堆棧實(shí)現(xiàn)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-07-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 奇米在线视频观看 | 天天操夜夜草 | 久久成人永久免费播放 | 四虎影视紧急入口地址大全 | 久久99精品久久久久久噜噜丰满 | 欧美成人高清 | 玖玖精品在线观看 | 毛片小视频 | 亚洲精品mv在线观看 | 天天爱天天干天天 | 99久久精品免费看国产免费 | 这里精品 | 久久久久久国产精品三级 | 成人激情视频在线 | 久久国产免费观看精品 | 精品免费久久久久国产一区 | 天堂精品高清1区2区3区 | 日本欧美三级 | 9966久久精品免费看国产 | 亚洲精品国产一区二区三区在 | 91视频观看免费 | 久草观看视频 | 亚洲a在线视频 | 久久综合九色综合欧洲色 | 欧美xxx免费视频 | 国产二级毛片 | 日韩欧美国产精品第一页不卡 | 免费观看羞羞视频网站 | 一本色道久久88加勒比—综合 | 天天操天天干天天射 | 天天怕夜夜怕狠狠怕 | 日本免费一区尤物 | 91精品国产91久久久久 | 久久公开视频 | 奇米影视一区 | 亚洲精品久久九九热 | 久久这里只有免费精品6www | 日韩欧美国产综合 | 4虎影院永久地址www | 亚洲不卡一区二区三区在线 | 精品一区二区三区视频在线观看免 |