單鏈表是一種鏈?zhǔn)酱嫒〉臄?shù)據(jù)結(jié)構(gòu),用一組地址任意的存儲(chǔ)單元存放線性表中的數(shù)據(jù)元素。鏈表中的數(shù)據(jù)是以結(jié)點(diǎn)來(lái)表示的,每個(gè)結(jié)點(diǎn)的構(gòu)成:元素(數(shù)據(jù)元素的映象) + 指針(指示后繼元素存儲(chǔ)位置),元素就是存儲(chǔ)數(shù)據(jù)的存儲(chǔ)單元,指針就是連接每個(gè)結(jié)點(diǎn)的地址數(shù)據(jù)。
中文名稱 | 單鏈表 | 外文名稱 | Singly Linked List |
---|---|---|---|
類型 | 數(shù)據(jù)結(jié)構(gòu)元素 | 核心 | 是一種鏈?zhǔn)酱嫒〉臄?shù)據(jù)結(jié)構(gòu) |
男士手鏈牌子好推薦卡地亞手鐲改變了首飾在時(shí)尚中的角色,它不再只是衣服的附庸,而成為可以獨(dú)自閃耀的亮點(diǎn)。手鐲上的小小螺絲釘,成就了世界珠寶史上的一個(gè)經(jīng)典傳奇,多年來(lái),令無(wú)數(shù)名流雅士魂?duì)繅?mèng)繞,時(shí)刻追隨?;?..
佩戴手鏈其實(shí)是沒(méi)什么講究的。平時(shí)佩戴手鏈都是為了美觀好看,所以左右手都是可以的。 ...
黃金手鏈表不錯(cuò),價(jià)格在999元,黃金手鏈表將外殼選擇了非常通透的超強(qiáng)塑料,保證內(nèi)部零件的安全,而且有著非常好聽(tīng)的名字叫做隨性幻影,以上價(jià)格來(lái)源于網(wǎng)絡(luò),僅供參考,具體價(jià)格已購(gòu)買時(shí)為準(zhǔn)。
格式:pdf
大小:470KB
頁(yè)數(shù): 7頁(yè)
評(píng)分: 4.4
WORD 格式可編輯 專業(yè)知識(shí) 整理分享 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告 姓名 學(xué)號(hào) 專業(yè)班 級(jí) 指導(dǎo)教師 實(shí)驗(yàn)時(shí)間 11月 9日 實(shí)驗(yàn)地 點(diǎn) 計(jì)算中心 實(shí)驗(yàn)二 單鏈表實(shí)驗(yàn) 1. 實(shí)驗(yàn)?zāi)繕?biāo) ① 熟練掌握線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。 ② 熟練掌握單鏈表的有關(guān)算法設(shè)計(jì)。 ③ 根據(jù)具體問(wèn)題的需要, 設(shè)計(jì)出合理的表示數(shù)據(jù)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu), 并設(shè)計(jì)相關(guān)算 法。 2. 實(shí)驗(yàn)內(nèi)容和要求 Ⅰ .實(shí)驗(yàn)要求 ① 本次實(shí)驗(yàn)中的鏈表結(jié)構(gòu)指帶頭結(jié)點(diǎn)的單鏈表 ② 單鏈表結(jié)構(gòu)和運(yùn)算定義, 算法的實(shí)現(xiàn)以庫(kù)文件方式實(shí)現(xiàn), 不得在測(cè)試主程序中 直接實(shí)現(xiàn);比如存儲(chǔ)、算法實(shí)現(xiàn)放入文件: linkedList.h ③ 實(shí)驗(yàn)程序有較好可讀性,各運(yùn)算和變量的命名直觀易懂,符合軟件工程要求; ④ 程序有適當(dāng)?shù)淖⑨尅?Ⅱ .實(shí)驗(yàn)內(nèi)容 <1>尾插法創(chuàng)建單鏈表,打印創(chuàng)建結(jié)果。 <2>頭插法創(chuàng)建單鏈表,打印創(chuàng)建結(jié)果。 <3>銷毀單鏈表。 <4>求鏈表長(zhǎng)度。 <5>
格式:pdf
大?。?span id="35ph3b8" class="single-tag-height">470KB
頁(yè)數(shù): 未知
評(píng)分: 4.5
首先簡(jiǎn)要介紹了數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),然后描述了該算法在變化事件存儲(chǔ)和轉(zhuǎn)發(fā)中的實(shí)際應(yīng)用,展現(xiàn)了數(shù)組型單鏈表的簡(jiǎn)單性、可靠性和實(shí)用性,并用C語(yǔ)言具體實(shí)現(xiàn),最后探討了其在實(shí)際使用中需采取的各種關(guān)鍵防誤措施。
#include<iostream>
using namespace std;
struct Number //鏈表的類型
{
char data; //鏈表當(dāng)前結(jié)點(diǎn)的值
struct Number *next; //鏈表當(dāng)前結(jié)點(diǎn)指向下一結(jié)點(diǎn)的指針
}*number;
void CreateList(Number *&L) //創(chuàng)建鏈表
{
Number *s,*r; //定義兩個(gè)鏈表類型的臨時(shí)指針
char x; //定義一個(gè)臨時(shí)字符變量
L=(Number *)malloc(sizeof(Number)); //為頭結(jié)點(diǎn)開(kāi)辟空間
L->next=NULL; //此時(shí)頭結(jié)點(diǎn)的后繼指針和前驅(qū)指針賦值為空
r=L; //是r指針指向頭結(jié)點(diǎn)
x=getchar(); //用x接受一個(gè)從鍵盤輸入的字符
while(x!='\n') //控制當(dāng)輸入回車鍵時(shí)結(jié)束
{
s=(Number *)malloc(sizeof(Number)); //開(kāi)辟下一結(jié)點(diǎn)的空間
s->data=x;
r->next=s; //r的后繼指針指向s
r=s; //是s指向r
x=getchar(); //用x接受一個(gè)從鍵盤輸入的字符
}
r->next=NULL; //當(dāng)創(chuàng)建結(jié)束時(shí),r的后繼指針為空
}
void PrintList(Number *L) //輸出鏈表
{
Number *p=L->next; //定義一個(gè)臨時(shí)指針并指向鏈表的第一個(gè)結(jié)點(diǎn)
while(p!=NULL) //判斷結(jié)點(diǎn)是否為空,空就結(jié)束
{
cout<<p->data; //輸出結(jié)點(diǎn)的值
p=p->next; //指向下一個(gè)結(jié)點(diǎn)
}
cout<<endl; //換行
}
void InverseList(Number *L) //鏈表的逆置
{
Number *p=L->next,*q=L->next;
q=q->next;
p->next=NULL;
p=q;
while(p!=NULL)
{
q=q->next;
p->next=L->next;
L->next=p;
p=q;
}
}
void DestroyList(Number *&L) //銷毀鏈表
{
Number *p=L,*q=p->next;
while(q!=NULL)
{
free(p); //釋放p的空間
p=q;
q=p->next;
}
cout<<"釋放鏈表"<<endl;
}
int main()
{
cout<<"請(qǐng)輸入一個(gè)鏈表:";
CreateList(number); //調(diào)用創(chuàng)建鏈表
cout<<"********************************************************************************";
cout<<"輸入的鏈表為:"<<endl;
PrintList(number); //調(diào)用輸出鏈表
InverseList(number); //調(diào)用逆置鏈表
cout<<"此鏈表的逆置為:"<<endl;
PrintList(number); //調(diào)用輸出鏈表
cout<<"********************************************************************************";
DestroyList(number); //調(diào)用銷毀鏈表的函數(shù)
return 0;
}
1、鏈表的抽象數(shù)據(jù)類型定義為:
ADTNumber{
數(shù)據(jù)對(duì)象:D={ai|ai∈(0,1,…,9),i=0,1,2,…,n,n≥0}
數(shù)據(jù)關(guān)系:R={<ai-1,ai>|ai-1,ai∈D,i=1,2,…,n}
基本操作:
CreateList(&L)
操作結(jié)果:創(chuàng)建一個(gè)鏈表L。
PrintList(L)
初始條件:鏈表L已存在。
操作結(jié)果:在屏幕上輸出鏈表的值。
InverseList(L)
初始條件:鏈表L已存在。
操作結(jié)果:將鏈表逆置。
DestroyList(&L)
初始條件:鏈表L已存在。
操作結(jié)果:銷毀鏈表L。
}ADTNumber
2、本程序包含五個(gè)模塊:
(1)主程序模塊:
int main(){
定義變量;
接受命令;
處理命令;
退出(return 0);
}
(2)創(chuàng)建鏈表模塊--產(chǎn)生一個(gè)鏈表;
(3)輸出鏈表模塊--把鏈表輸出;
(4)鏈表逆置模塊--將鏈表逆置;
(5)銷毀鏈表模塊--程序結(jié)束后釋放鏈表開(kāi)辟的空間。
各模塊之間的調(diào)用關(guān)系如下:
主程序模塊 創(chuàng)建鏈表模塊
創(chuàng)建鏈表模塊 輸出鏈表模塊 鏈表逆置模塊
輸出鏈表模塊 創(chuàng)建鏈表模塊 銷毀鏈表模塊
1、本程序由用戶輸入運(yùn)行命令和數(shù)據(jù),運(yùn)行結(jié)果顯示在其后。
2、程序執(zhí)行的命令包括:
1)創(chuàng)建一個(gè)鏈表;2)執(zhí)行鏈表的逆置;3)結(jié)束。
2、測(cè)試數(shù)據(jù)
鏈表:abc123