最近又開始了資料結構的學習,去年下半年也學過一段時間,沒能堅持下去,希望這次能堅持久一點,把基礎的資料結構都能掌握;這是我最近對單向鍊錶的一些學習情況;我先是聽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...