有關鍊錶的練習題。

2021-08-20 20:20:24 字數 901 閱讀 3325

剛剛學了線性表,會了一些基本操作,現在來做一些經典面試題來鞏固一下知識。

一。列印鍊錶從尾到頭。

//(1)從尾到頭列印單鏈表。普通法:

void print(slistnode *pfirst)

end=pnode; //將pnode賦給end。

pnode=pfirst; //將pnode賦成頭結點列印出此時的值,繼續迴圈。

printf("%d ",end->data);

} printf("\n");

}//(2)遞迴法:

void printf(slistnode *pfirst)

printf("%d ",pfirst->data);

}

二。逆置鍊錶。

void reverse(slistnode *pfirst)

} for(pnode=pfirst;pnode!=null;pnode=pnode->pnext) //列印出此時已逆置的鍊錶。

printf("\n");

}

三。刪除乙個無頭單鏈表的非尾結點。(不能遍歷鍊錶)

void nofrontslist(slistnode *ppos)

四。在無頭單鏈表的乙個節點前插入乙個節點。

//無頭單鏈表的乙個節點前插入乙個節點(不能遍歷鍊錶)。

void inesrtslist(slistnode *ppos,datatype data)

今天就先做著四個題,這些都是很簡單的面試題,下次會分享一些更有意思,更困難的面試題。

鍊錶練習題

鍊錶 這裡我記錄了鍊錶的各種操作的演算法,在後面的習題中會涉及到這些演算法的思路。leetcode206.反轉鍊錶 反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null反序的演算法之前記錄過,可以就地反序,也可以使用棧反序,這裡為了節省時間和空間,就用就地反序...

鍊錶練習題1

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...

鍊錶課後練習題(基礎)

13人圍成一圈,報到3退出,找到留在圈子中的人原來的序號 include include include using namespace std define len sizeof struct student struct student struct student creat int n re...