進了it, 資料結構可謂是核心的核心,必須搞得明明白白的, 博主由於轉專業原因資料結構基礎真的是渣到了徹底,期末痛徹心扉的考了大學最低分71啊啊啊,至此決定好好複習資料結構!由於谷歌和課本有太多的定**釋所以這篇部落格只是打算記錄博主敲**實現的部分。
由於c++相容c所以我只是在動態申請記憶體和釋放的**塊用了c++的new和delete函式,以及io操作用的c++的cin和cout,程式設計思想並沒有使用c++的物件導向程式設計,我只是打算複習一下演算法順便實現,
考試的時候寫的是偽**。
這裡有乙個小知識是我剛接觸c和c++遇到的:「.」和『->』的區別。 這裡告訴大家這個小細節,c++中當定義類物件是指標物件時候,就需要用到「->」指向類中的成員,當定義一般物件時候就需要用到『.『指向類中的成員
自己傻瓜式理解就是:->左邊必須是指標.左邊必須是實體
其他的注意一下:
這個**是我自己寫的,沒有一點照搬,我初心只是為了幫助我理解演算法,快速實現一下我的思路對不對,我的建議是不要用我這樣說c不c說c++不c++的方式寫,用c++就用oop思想寫,這才是正道,用c就不要整花裡胡哨的cin,cout,還有一定要遵守**規範,像python的pep8,**是給人看到,雖然現在不涉及後期優化什麼的,但是優雅的**真的會潛移默化的提公升自己(這裡重點吐槽tab和空格混用的小哥哥小姐姐,讓python程式設計師簡直頭禿!)當然如果你和我一樣只是為了理解演算法,請接著往下看
#include#includeusing namespace std;
#define initsize 100
typedef int elemtype;
typedef struct seqlist;
void createlist(seqlist &l, elemtype a, int n)
l.length = n;
cout << endl;
}void initlist(seqlist& l)
void printlist(seqlist l)
cout << endl;
}int length(seqlist& l)
for (int j = l.length; j >= i; j--)
l.data[i - 1] = e;
l.length++;
cout << "此時插入" << e << "的順序表為:";
printlist(l);
return true;
}bool listdelete(seqlist& l, int i, elemtype& e)
l.length--;
cout << "刪除後的順序表為:";
printlist(l);
return true;
}bool desetroylist(seqlist& l)
bool empty(seqlist l)
int main()
createlist(l, a, 5);
length(l);
locateelem(l, 2);
getelem(l, 3);
listinert(l, 1, 2);
length(l);
listdelete(l, 2, e);
desetroylist(l);
length(l);
empty(l);
return 0;
}
資料結構之順序表
首先是標頭檔案seqlist.h ifndef seqlist h define seqlist h include includeusing namespace std define elemtype int define seqlist default size 10 typedef struc...
資料結構之順序表
順序表的思想容易了解,但是 不容易掌握,我這裡根據老師所提供的 進行一下簡單的總結 這個 包含順序表的查詢,插入,刪除,建表,輸出資料 includeusing namespace std define ok 1 define error 0 define overflow 2 typedef in...
資料結構之順序表
順序表就是按照順序儲存方式儲存的線性表,該線性表的結點按照邏輯次序一次存放在計算機的一組連續的儲存單元中如下圖 由於順序表是一次存放的,只要知道了該順序表的首位址以及每個資料元素所占用的儲存長度,那麼我們就很容易計算出任何乙個資料元素 也就是資料繫結點 的位置。1 結點資料型別 public cla...