c 實現單向鍊錶基本操作

2021-08-19 13:33:15 字數 1779 閱讀 8556

最近又開始了資料結構的學習,去年下半年也學過一段時間,沒能堅持下去,希望這次能堅持久一點,把基礎的資料結構都能掌握;這是我最近對單向鍊錶的一些學習情況;我先是聽mooc的浙大資料結構的課程,在頭腦裡建立起資料結構的形象和特徵,(這種方法不一定很好,只是目前我對資料結構的一種學習方法)在看完一種資料結構的課程後,就試著根據自己的理解去實現這些資料結構的基本操作,在此之前,我還會先瀏覽一下他人的部落格,以期望獲得更深的理解;

最後根據自己的理解,先在頭腦中預先推算一下基本操作的實現,看是否建立起了自己的理解,若遇見不知如何實現的操作,停下來去瀏覽閱讀他人的部落格,進一步理解;直到能在腦中自我推算實現這些操作,接下來就是實際寫**了;

寫**時,我是乙個方法乙個方法的實現它,不是把所有操作的方法都寫好後才去執行程式,而是乙個方法成功後再接著寫下乙個方法;(因為之前就是先把所有方法一次寫出來,然後經常會遇見很多錯誤的地方,除錯修改起來難度會更高,降低繼續書寫的動力,會減少繼續學習它的興趣)而乙個方法乙個方法的實現,會時刻給我一種鼓勵,一種成就感,雖然這些實現對於很多人來說是很簡單的,但對於我來說,這的確是一種進步,就這樣慢慢完成大概的基本操作。

我這段**肯定還有很多沒有考慮周全的地方,希望你們看了後,能多給我提出來,共同進步,謝謝!

#include #include #include using namespace std;

typedef struct node

node, *pnode;

pnode creatlist();

void length(pnode head);

void transelation(pnode head);

void cint(pnode head);//尾部插入

void deletelist(pnode head);

void freeall(pnode head);

int main()

pnode creatlist()

head->next = null;

tail = head;

cout << "請輸入結點個數" << endl;

cin >> n;

while(n--)

cout << "請輸入第" << i+1 << "個結點的資料" << endl;

cin >> data;

pnew->data = data;

pnew->next = null;

tail->next = pnew;

tail = pnew;

i++;

} return head;

}void length(pnode head)

while(pt != null)

cout << "結點個數為:" << i << endl;

}void transelation(pnode head)

}void cint(pnode head)

pt = head->next;

if(head->data == data0)

while(pt != null && pt->data != data0)

if(pt == null)

else }

void deletelist(pnode head)

while(pt != null && pt->next->data != data0)

if(pt == null)

else }

void freeall(pnode head)

if(pt == null)

}

用C 實現對單向鍊錶的基本操作

完成建立單向鍊錶,實現正序,倒序輸出,以及插入和刪除某一結點。include include 同理佇列 include using namespace std std定義了c 標準庫中的函式或物件 鍊錶的結點定義 struct list 建立列表 list createlist int n 建立含有...

單向鍊錶的基本操作

這篇文章也是為了複習下,同時為字典樹做下準備 鍊錶操作包括建立,刪除,增加,排序,輸出等操作,後續將 貼上 單向鍊錶 head null 空鍊錶 head p1 p2 pn null p1 next p2 next pn next include include int n 0 節點個數 typed...

單向鍊錶的基本操作

pragma once include include include include typedef char linktype typedef struct linknode linknode void linklistinit linknode head 初始化鍊錶 linknode link...