單鏈表題是用C、c寫的,鍊表類模板題不要用C,用c)。

發布 科技 2024-03-17
3個回答
  1. 匿名使用者2024-02-06

    Heada 和 headb 都是具有前導節點的單鏈表。 在這個演算法中,我們從 heada 鍊表的第 i 個元素中刪除公共元素,然後在 headb 的第 j 個元素之前插入單鏈表 heada。

    if ( i < 1 ||len < 1 ||j < 1)

    printf ( "引數不正確");

    exit ( 0);

    p = heada;p 是鍊表 A 的工作指標,它被初始化為 A 的標頭指標,當找到第 i 個元素時,p 指向 i-1 元素。

    int k = 0;計數。

    while ( p != null &&&k < i-1)。

    k++;p = p->next;

    如果 ( p == null) i 太大,則退出演算法。

    printf ( "給定的 %d 太大", i);

    exit ( 0);

    q = p->next;q 是工作指標,它最初指向 A 鍊表的第乙個節點。

    k = 0;

    while ( q != null &&k < len)

    k++;u = q;

    q = q->next;

    free ( u);刪除節點並將指標移回。

    if ( k < len)

    printf ( "給定的 %d 太大", len);

    exit ( 0);

    p->next=q;鍊表刪除 len 元素。

    if ( heada->next!=null) heada->next=null 表示鍊表中的所有節點都已被刪除,不需要插入到表 B 中。

    while ( p->next != null) 來查詢 a 的尾節點。

    p = p->next;

    q = headb;q 是鍊表 B 的工作指標。

    k = 0;計數。

    while ( q != null &&k < j - 1)找到第 j 個節點,搜尋成功後,q 指向 j-1 節點。

    k++;q = q->next;

    if ( q == null)

    printf ( "給定的 %d 太大", j);

    exit ( 0);

    p->next = q->next;鏈結 a 鍊表。

    q->next = heada->next;A 的第乙個元素節點鏈遵循 B 的 J-1 節點。

    free ( heada);釋放 A 標頭節點。

    return headb;

  2. 匿名使用者2024-02-05

    因為不知道具體問題,只能寫演算法思路提供參考,假設單鏈表的節點型別是nodenode *p, *q, *a; p=;(a的第乙個元素)int k; for(k=0;k

  3. 匿名使用者2024-02-04

    看看閻偉民的資料結構。

相關回答
5個回答2024-03-17

究竟要做什麼?

7個回答2024-03-17

看"馬洛克",第一頁有一篇文章寫得很清楚。

9個回答2024-03-17

範圍。 你靜態字元 *chh;

static char *ch1;雖然兩個指標指向的位址沒有變化,但你有沒有想過它們指向的記憶體位址是否已經釋放,char chc[10]; 它是本地的,函式已經結束,生命週期已經結束,你正在嘗試使用 void times() 中的指標訪問它。 >>>More

6個回答2024-03-17

使用 ITOA 函式。

原型:extern char *itoa(int i); >>>More

3個回答2024-03-17

我自己寫的,直接用一維陣列求解。

#include >>>More