使用鍊錶首先建立節點的結構體:
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寒假集訓總結第二節 鍊錶
鍊錶這個東西嘛,一開始學我覺得暈是肯定會的,不過經過洗禮後就不會感覺那麼難了,首先明白的是,鍊錶是乙個線性結構,主要分為頭部,中間部分,尾部。鍊錶的構成從頭部開始講,確定乙個鍊錶的關鍵就是先確定頭部,有了頭部再對於頭部的下乙個進行操作,然後依次遞推。最基礎的鍊錶中的某乙個元素是由兩部分構成的。第乙個...