華為機試練習題 鍊錶操作

2021-10-23 11:43:45 字數 1425 閱讀 9034

華為機試

題目描述

輸入乙個單向鍊錶和乙個節點的值,從單向鍊錶中刪除等於該值的節點,刪除後如果鍊錶中無節點則返回空指標。

鍊錶結點定義如下:

struct listnode

int m_nkey;

listnode* m_pnext;

詳細描述:

本題為考察鍊錶的插入和刪除知識。

鍊錶的值不能重複

構造過程,例如

1 <- 2

3 <- 2

5 <- 1

4 <- 5

7 <- 2

最後的鍊錶的順序為 2 7 3 1 5 4

刪除 結點 2

則結果為 7 3 1 5 4

#include using namespace std;

typedef struct listnode

listnode;

//建立煉表頭結點

listnode* creatlist(int headnumber)

//插入元素

void insertlist(listnode* head, int data, int position)

listnode* ptemp = new listnode;

ptemp->m_nkey = data;

ptemp->m_pnext = pcurrent->m_pnext;

pcurrent->m_pnext = ptemp;

}//刪除元素//若刪除後鍊錶為空則返回空指標

listnode* deletelist(listnode* head, int data)

if (head->m_nkey == data)

listnode* ppre = head;

listnode* pcurrent = ppre->m_pnext;

while (ppre->m_pnext != null)

ppre = ppre->m_pnext;

pcurrent = pcurrent->m_pnext;

} return head;

}//列印鍊錶

void printlist(listnode* head)

cout << ptemp->m_nkey << " ";

}int main()

//printlist(phead);

//cout << endl;

int deldata;

cin >> deldata;

listnode* phead2 = deletelist(phead, deldata);

printlist(phead2);

cout << endl;

} return 0;

}

華為機試練習題1

題目描述 有這樣一道智力題 某商店規定 三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?答案是5瓶,方法如下 先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以後4個空瓶子,用3個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然後你讓老闆先借給你一瓶汽水,喝掉這瓶滿的,喝完以...

華為機試練習題 28 報數

題目 描述 有n個人圍成一圈,順序排號。從第乙個人開始報數 從1到3報數 凡報到3的人退出,問最後留下的那位是原來第幾號。題目類別 陣列,指標難度 初級執行時間限制 10sec記憶體限制 128mbyte階段 入職前練習輸入 使用標準輸入stdio.多行,每行一組資料。輸出 多行,每行對應求和結果。...

華為機試練習題 18 矩陣相乘

題目 描述 題目描述 矩陣相乘 輸入 兩個n n階矩陣相乘 輸出 結果矩陣 樣例輸入 樣例輸出 介面說明 原型 int matrix int matrixa,int matrixb,int matrixc,int n 輸入引數 int matrixa 指向二維陣列a int matrixb 指向二維...