目錄
1.malloc函式
2.靜態鍊錶
鍊錶的結點一般包括兩部分組成,分別是資料域和指標域;
struct node
該函式在stdlib.h標頭檔案下用於申請動態記憶體的函式,其返回型別是申請的同變數型別的指標。
typename* p=(typename*)malloc(sizeof(typename));
int* p=(int*)malloc(sizeof(int));
node* p=(node*)malloc(sizeof(node));
浙大mooc的書寫方式為
typedef struct lnode *list;
struct lnode l;
list ptrl;
或ptrl->data[i]
ptrl=(list)malloc(sizeof(struct lnode));
free(p); //free是對應malloc函式的,同樣是在stdlib的標頭檔案下
有乙個死記硬背的模板,不打了反正也不好用。
不不很好用,真的香
#include#includestruct node;
//建立鍊錶(關鍵函式)
node* create(int array)
return head; //返回頭結點指標
}int main()
; node* l=create(array); //新建鍊錶,返回頭指標head賦給l
l=l->next; //從第一結點開始有資料域
while(l!=null)
return 0;
}
給出mooc的答案
typedef int position;
typedef struct lnode *list;
struct lnode ;
/* 初始化 */
list makeempty()
/* 查詢 */
#define error -1
position find( list l, elementtype x )
/* 插入 */
bool insert( list l, elementtype x, position p )
if ( p<0 || p>l->last+1 )
for( i=l->last; i>=p; i-- )
l->data[i+1] = l->data[i]; /* 將位置p及以後的元素順序向後移動 */
l->data[p] = x; /* 新元素插入 */
l->last++; /* last仍指向最後元素 */
return true; }
/* 刪除 */
bool delete( list l, position p )
for( i=p+1; i<=l->last; i++ )
l->data[i-1] = l->data[i]; /* 將位置p+1及以後的元素順序向前移動 */
l->last--; /* last仍指向最後元素 */
return true;
}
typedef struct lnode *ptrtolnode;
struct lnode ;
typedef ptrtolnode position;
typedef ptrtolnode list;
/* 查詢 */
#define error null
position find( list l, elementtype x )
/* 帶頭結點的插入 */
bool insert( list l, elementtype x, position p )
else }
/* 帶頭結點的刪除 */
bool delete( list l, position p )
else
}
struct nodenode[size];
演算法筆記7 3 鍊錶
create search insert del includeusing namespace std struct node 建立乙個單向鍊錶 根據陣列來初始化相應結點 node create int array,int n return head 返回頭結點 查詢元素 返回給定元素在鍊錶 現的次...
鍊錶的處理
在graph coloring中,使用雙向鍊錶 開始在windows vc平台上除錯,正常後,移植到ubuntu下,用g 編譯,發現總是拋段錯誤,在當前目錄下產生core檔案 段錯誤,核心已轉儲 若未產生,ulimit c unlimit gdb main core 定位到雙鏈表操作 min pri...
鍊錶的處理
typedef struct node link void create link head p head next i 0 while p null 拿乙個指標指向拍好序的鍊錶,乙個指向老鍊錶的指標,乙個是在新鍊錶裡面移動指標 void sort link head u p next p next...