寫的方法不全,只是為了方便自己隨時檢視。
#include "pch.h"
#includeusing namespace std;
//定義單鏈表結構
typedef struct lnode lnode;
//頭插法
void list_headinsert(lnode *&l, int n)
for (int i = 0; i < n; i++) }
//尾插法
void list_tailinsert(lnode *&l,int n)
lnode* p; lnode* r;
l = (lnode*)malloc(sizeof(lnode));
r = l;
int i;
int x;
l->next = null;
for ( i = 0; i < n; i++)
r->next = null;
}//按序號查詢元素(帶頭結點)
void queryelembyid(lnode *l, int n)
cout << "第" << n << "個元素的值為:" << l->data;
}//按值查詢
int queryelembyvlaue(lnode* l, int s)
else
} return -1;
}//刪除單鏈表
void clearlist(lnode *&l)
l->next = null;
}//判斷單鏈表是否為空,這裡是帶頭結點的
void isempty(lnode *l)
}//遍歷單鏈表,並輸出
void printlist(lnode *l)
}int main()
這裡 我告訴你zxh 你要好好理解 指標的指標
這裡用的是引用
希望你下次看到的時候,不要忘記了哦
我們為什麼要用值傳遞?
function(int a , int b);
這個函式不會修改 傳遞進來的引數,只是乙個copy
function(int *a,int *b);
他會將位址copy乙份,然後根據位址去找元素,
位址一樣找的當然一樣咯。
放在記憶體裡的東西,你覺得是copy的嗎。是唯一的,authentic懂嗎?
別逼我 跟自己 秀英文。
你再看啊
function(指標) 這裡的引數 我不好舉例, 反正傳入的是乙個指標,
不是 位址。
function(int * a ,int* b)這個傳入的是位址!!
傳入了指標,那麼引數就會copy乙個指標,指標就是乙個放著位址的空間,指標本身也有位址的。懂嗎?白痴。懂了 奧。
copy了這個指標了,然後對它進行操作,等函式結束了,也就釋放掉了。所以沒有卵用。沒有卵用!!!!
要讓它發生改變 就要傳入指標的位址。那怎麼傳入指標位址呢,就用指標的指標咯
int** 指標型別 int**,指標指向的型別int*。
當然這是c語言裡的,但你千萬一定要理解 知道了嗎!!
別辜負了 自己啊 zxh
等你 再過半年 回過來看的時候 希望你記得。!!
C 單鏈表實現
1 單向鍊錶 單向鍊錶 include include class cnode 節點類 class clist 鍊錶類 cnode movetrail cnode pnode 移動到尾節點 return ptmp void addnode cnode pnode 新增節點 else m nodesu...
c 實現單鏈表
include include using namespace std typedef int datatype struct linknode 建立乙個節點 class slist void swap slist s slist const slist s head null tail null ...
單鏈表(C實現)
ifndef list h define list h typedef struct node node typedef struct list list initlist int insertlist list l,void data,int size node findnodebykey lis...