剛剛接觸資料結構的我也是一臉懵逼的看待單鏈表,陣列向線性表的思想和**的突然轉換有點矇逼,尤其是為什麼要建立結構體,單鏈表的實現首先要建立乙個結構體,結構體的作用就是把乙個資料和下個資料的實體地址綁在一起形成單鏈表的乙個元素(資料+下個資料的位址)
資料下個元素的位址
閒著沒事敲的**不是很完美,也沒有按照書上的來,但是應付老師的作業估計沒有啥大問題
#include #include using namespace std;
typedef char elemtype;
typedef struct lnode//單鏈表結構體
linknode;
void initlist(linknode *&l)//初始化單鏈表分配空間
void createlistr(linknode *&l,elemtype a,int n)//建立單鏈表
r->next=null;
}void displist(linknode *l)//輸出單鏈表函式
cout}void getelem(linknode *l,int n)//取出單鏈表某元素
p=p->next;
i++;
}if(p!=null)//判斷輸入是否合法
cout<>n;
getelem(l,n);
}} void locateelem(linknode *l,elemtype e)//得到單鏈表中某元素的位置
break;
}p=p->next;
i++;
}if(p!=null)//判斷輸入元素是否在該單鏈表中
cout<>e;
locateelem(l,e);
}}void listinsert(linknode *&l,int n,elemtype e)//在單鏈表中指定位置插入某元素
i++;
p=p->next;
}}void listdelete(linknode*&l,int n)//刪除單鏈表中指定位置的元素
i++;
p=p->next;
}}int main()
{ int n,x;
elemtype a[100],e;//建立陣列
cout<<"請輸入陣列長度:";
cin>>n;
linknode *l;//結構體指標
cout<>x;
getelem(l,x);//取出指定位置的元素
cout<>e;
locateelem(l,e);//取出單鏈表指定元素的位置
cout<>n;
cout<>e;
listinsert(l,n,e);//在單鏈表中指定位置插入元素
cout<>n;
listdelete(l,n);//刪除單鏈表中指定位置的元素
cout所以你想要的釋放整個單鏈表的空間就要像建立單鏈表一樣用乙個迴圈進行操作具體怎樣刪除的演算法,和插入與刪除的演算法基本思想一樣,這裡就不在嘮叨了
資料結構 單鏈表基本功能實現
總結 實驗目的 掌握單鏈表的儲存結構形式及其描述 掌握單鏈表的建立 查詢 插入和刪除操作 實驗內容 編寫函式,實現隨機產生或鍵盤輸入一組元素,建立乙個帶頭結點的單鏈表 無序 編寫函式,實現遍歷單鏈表。編寫函式,在非遞減有序單鏈表中插入乙個元素使鍊錶仍然有序。編寫函式,實現在非遞減有序鍊錶中刪除值為x...
單鏈表的基本功能 C語言
整個工程所要可能會用到的標頭檔案 common.h ifndef common h define common h include include include include include define datatype int endif textmain.c define crt secu...
C 實現單鏈表的基本功能
鍊錶是指使用鏈結的方式儲存的線性表,一般乙個單鏈表結點由資料域和指標域兩個域組成如圖1所示,其中資料域data存放該結點的資料域的值,指標域next存放該結點的後繼結點的位址資訊。2 單鏈表的標頭檔案 pragma once include include struct stunode 代表學生的節...