寒假集訓之鍊錶小結

2021-09-30 19:43:11 字數 1322 閱讀 1915

使用鍊錶首先建立節點的結構體:

struct node

;

鍊錶的建立有兩種一種是順序建立一種是逆序建立,兩者相比較而言逆序更簡單一些,他比順序少設定乙個指標下面是逆序建立鍊錶的函式

struct node *creat(int len)//逆序建立鍊錶

return head;//因為返回值是乙個指標所以函式名前會有*

}

這是順序建立鍊錶:

struct node *creat1(int len/*len是鍊錶的長度*/)//順序建立單鏈表

return (head);

}

鍊錶的輸出函式:

void shuchu(struct node*head)

}

以下是一些單鏈表的應用,有單鏈表的逆置、單鏈表的歸併、單鏈表的拆分、單鏈表節點的插入及刪除、還有迴圈鍊錶的建立。

單鏈表的逆置函式:

void reverse(struct node*head)//傳過來要逆置的鍊錶

}

有序鍊錶的歸併:

struct node *merge(struct node *head1,struct node *head2)

else

}if(p1)t->next=p1;

else t->next=p2;

return head1;

};

單鏈表節點的插入:在鍊錶的p節點之後插入乙個值為key的節點函式

//在鍊錶的p節點之後插入乙個值為key的節點函式

void insert(struct node *p,int key)

單鏈表節點的刪除,要想刪除節點p,需要找到p的前乙個節點,這是關鍵,由於知道乙個節點只能找到他後面的節點所以要先找到節點p的前驅節點;

void delete(struct node *head,int key)

else p=p->next;

}if(flag)

else printf("error\n");

}

迴圈表的建立

把表尾和表尾連在一起即

if(p->next==null)p->next=head->next;

還差個主函式

int main()

寒假集訓小結之動態規劃

time limit 1000 ms memory limit 65536 kib submit statistic problem description 給定乙個由n行數字組成的數字三角形如下圖所示。試設計乙個演算法,計算出從三角形的頂至底的一條路徑,使該路徑經過的數字總和最大。對於給定的由n行...

寒假集訓作業(2) 鍊錶

這真是令人頭疼!include include includeusing namespace std struct node struct node creat2 int n return head int main include include includeusing namespace st...

2018寒假集訓總結第二節 鍊錶

鍊錶這個東西嘛,一開始學我覺得暈是肯定會的,不過經過洗禮後就不會感覺那麼難了,首先明白的是,鍊錶是乙個線性結構,主要分為頭部,中間部分,尾部。鍊錶的構成從頭部開始講,確定乙個鍊錶的關鍵就是先確定頭部,有了頭部再對於頭部的下乙個進行操作,然後依次遞推。最基礎的鍊錶中的某乙個元素是由兩部分構成的。第乙個...