国语精品91自产拍在线观看二区_色偷偷五月天_天天射夜夜爽_99久久免费国产特黄_1717国产精品久久

C數(shù)據(jù)結(jié)構(gòu)面試題 以及答案

時(shí)間:2022-07-13 14:03:56 面試 我要投稿
  • 相關(guān)推薦

C數(shù)據(jù)結(jié)構(gòu)面試題 以及答案

做了這么多年java,做java偏向于應(yīng)用,都用別人的插件和jar包,F(xiàn)在面臨畢業(yè),大公司技術(shù)筆試離不開(kāi)數(shù)據(jù)結(jié)構(gòu),整理了下別人的題目。然后自己做了下。寫(xiě)這里留紀(jì)念,也希望對(duì)大家有幫助!
程序都在MinGW上跑通,VC我不知道。。
1.把一個(gè)鏈表反向
#include

C數(shù)據(jù)結(jié)構(gòu)面試題 以及答案

typedef   struct   List
{   
int num;
struct List *next;
}test;
test *create_list()
{
test *head;
test *first;
test *temp =NULL;
first=head=new test;
for(int i=0;i<10;i++)
{
head->num=i;
temp=new test; //偷懶,用C++的new了,C用內(nèi)存分配函數(shù)
head->next=temp;
temp->next=NULL;
head=temp;
}
return&#160;&#160; first;
}
void print(test *head)
{
while(head->next!=NULL)
{
printf("%d ",head->num);
head=head->next;
}
}
test *change_list(test *head)
{
test *temp,*sixer;
temp=head->next;
head->next=NULL;
while(temp->next!=NULL)
{
sixer=temp->next;
temp->next=head;
printf("%d-head-",temp->num);
head=temp;
temp=sixer;
printf("%d-temp-",temp->num);
}
temp->next=head;
return temp;
}

int&#160;&#160; main()
{
test *onelist;
onelist = create_list();
print(onelist);
onelist = change_list(onelist);
print(onelist);
}
2.&#160; 一個(gè)二叉樹(shù)的三種遍歷方法的輸出結(jié)果
前序遍歷,先根接點(diǎn)。中序,根左邊的根右邊的,例子:
abdgcefh,中序遍歷訪問(wèn)順序是dgbaechf,則其后續(xù)遍歷的結(jié)點(diǎn)訪問(wèn)順序是
a為根,dgb為左子樹(shù),echf為右子樹(shù)
接下來(lái)看左子樹(shù)的前序遍歷為bdg
b首先被訪問(wèn)
可以知道b為左子樹(shù)的根,與a相連
再看左子樹(shù)的中序遍歷dgb
d和g都在b之前就被訪問(wèn)
所以b和g應(yīng)該在b的左子樹(shù)上
而dg的確定再根據(jù)前序遍歷
d先被訪問(wèn)
則d為根
再看中序遍歷也是d先被訪問(wèn)
可以確定g為d的右子樹(shù)
左邊就可以確定出來(lái)了
如果上面看懂了
右邊就很簡(jiǎn)單,一樣的道理
前序遍歷cefh
確定c為右子樹(shù)的根
再看中序遍歷echf
e為c的左子樹(shù),hf為c的右子樹(shù)
hf的確定在看前序遍歷f先被訪問(wèn)
f為根
中序遍歷h先被訪問(wèn)
h為f的左子樹(shù)
整棵樹(shù)就出來(lái)了
3.
希表和數(shù)組的定義,區(qū)別,優(yōu)缺點(diǎn)

百度
4.遞歸的折半查找算法
#include

using namespace std;
void creat(int a[])
{
for(int i=0;i<10;i++){
a[i]=i;
}
}
void print(int a[])
{
for(int i=0;i<10;i++){
printf("%d-",a[i]);
}
}
int Search(int a[],int key,int left ,int right)
{
int mid;&#160;
while(left<=right){&#160;
mid = (left+right)/2;&#160;
if(key==a[mid]){&#160;
return mid;&#160;
}&#160;
else if(keyright = mid-1;&#160;
return Search(a,key,left,right);&#160;
}&#160;
else{&#160;
left = mid+1;&#160;
return Search(a,key,left,right);&#160;
}&#160;
}&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
return -1;&#160;&#160;
}

int main()
{
int a[10];
int i;
creat(a);
print(a);
int key;
cin>>key;
int left = 0;&#160;
int right = 10;&#160;
i=Search(a,key,left,right);
printf("%d->%d",i,a[i]);
return 1;
}
5.sizeof()和strlen()的使用.
sizeof比特字節(jié)數(shù)長(zhǎng)度。strlen長(zhǎng)度比如char a[2]={1,2} 嗎sizeof是2,strlen是3包括了/0而且sizeof是可以測(cè)int a[]這種的int a[2]={1,2} 的sizeof是8.2個(gè)4字節(jié)int。

【C數(shù)據(jù)結(jié)構(gòu)面試題 以及答案】相關(guān)文章:

經(jīng)典C/C++面試題07-11

c面試題08-04

上海交通大學(xué)軟件工程專(zhuān)業(yè)C、C++、數(shù)據(jù)結(jié)構(gòu)、電路系統(tǒng)以及離散結(jié)構(gòu)的課件07-09

華為C++/MFC面試題07-11

軟件測(cè)試面試題及答案12-30

某公司面試題及答案07-11

元宵節(jié)的燈謎以及答案08-03

已考面試題求答案07-11

東坡畫(huà)扇閱讀原文以及答案08-04

華為面試題C語(yǔ)言軟件工程師07-11