C資料結構學習歷程 2 鍊錶

2021-07-06 10:27:02 字數 1371 閱讀 1742

因為有注釋,我直接copy**了。

#includeusing namespace std;

#define ok 1

#define error -1

#define max_size 100

typedef int status;

typedef int elemtype;

typedef struct lnode

lnode;

//頭插入法建立表,鍊錶的頭結點head作為返回值

lnode *create_linklist()

return(head);

}//在以l為頭結點的單鏈表的第i個位置插入值為e的結點

void insert_lnode(lnode*l,int i,elemtype e)

if(j!=i-1)

else

}//刪除以l為頭結點的單鏈表中的第i個結點 1=next!=null

void delete_linklist(lnode*l,int i)

if(j!=i)printf("i太大或i為0 \n");

else

}elemtype get_elem(lnode *l,int i)

if(j!=i)

else

}//返回第乙個 值為e的指標結點

lnode *locate_node(lnode *l,elemtype e)

if(p==null)

else if(p->data==e)

else return null; }

lnode*merge_linklist(lnode*la,lnode *lb)

else if(pa->data>pb->data) //當pa==null時,就不能指了,因此ppt又錯了,應該用我剛開始出現的,if else if 結構這樣就可以比較一次就迴圈了,

//不然也可以對為null進行判斷

else if(pa->data==pb->data)

}if(pa==null)

else

pc->next=pa;

free(lb);

return (lc);

}int main()

/*lnode*p1= locate_node(ll,31);

if(p1==null){} //這是測試locate_node()函式的

else

cout<<"\n"//cout

lnode*lc;

lc=merge_linklist(ll,l2);

return 0;

}

資料結構學習 2 鍊錶

重點講一下插入和刪除以及頭插法和尾插法,其他的應該很好推。status listinsert linklist l,int i,elemtype e if p j i s linklist malloc sizeof node 生成新節點 s data e 元素賦值 s next p next 把p...

資料結構學習 鍊錶

將從下面4部分進行介紹 首先介紹鍊錶是什麼,然後介紹為什麼定義鍊錶,接著是鍊錶的分類,最後簡單介紹一下鍊錶結點的插入與刪除方法。首先,在介紹鍊錶之前,我們先介紹一下什麼是順序儲存結構。我們知道資料在計算機中的儲存就像貨物在倉庫中的儲存一樣,不但占用一定的空間,還要有乙個標示儲存位置的位址。計算機通過...

資料結構學習 鍊錶

由於不必須按順序儲存,鍊錶在插入的時候可以達到o 1 的複雜度,比另一種線性表順序表快得多,但是查詢乙個節點或者訪問特定編號的節點則需要o n 的時間,而線性表和順序表相應的時間複雜度分別是o logn 和o 1 使用鍊錶結構可以克服陣列鍊錶需要預先知道資料大小的缺點,鍊錶結構可以充分利用計算機記憶...