久久综合丝袜日本网手机版,日韩欧美中文字幕在线三区,亚洲精品国产品国语在线,极品在线观看视频婷婷

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

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

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

        做了這么多年java,做java偏向于應(yīng)用,都用別人的插件和jar包。現(xiàn)在面臨畢業(yè),大公司技術(shù)筆試離不開數(shù)據(jù)結(jié)構(gòu),整理了下別人的題目。然后自己做了下。寫這里留紀(jì)念,也希望對大家有幫助!
        程序都在MinGW上跑通,VC我不知道。。
        1.把一個鏈表反向
        #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; 一個二叉樹的三種遍歷方法的輸出結(jié)果
        前序遍歷,先根接點。中序,根左邊的根右邊的,例子:
        abdgcefh,中序遍歷訪問順序是dgbaechf,則其后續(xù)遍歷的結(jié)點訪問順序是
        a為根,dgb為左子樹,echf為右子樹
        接下來看左子樹的前序遍歷為bdg
        b首先被訪問
        可以知道b為左子樹的根,與a相連
        再看左子樹的中序遍歷dgb
        d和g都在b之前就被訪問
        所以b和g應(yīng)該在b的左子樹上
        而dg的確定再根據(jù)前序遍歷
        d先被訪問
        則d為根
        再看中序遍歷也是d先被訪問
        可以確定g為d的右子樹
        左邊就可以確定出來了
        如果上面看懂了
        右邊就很簡單,一樣的道理
        前序遍歷cefh
        確定c為右子樹的根
        再看中序遍歷echf
        e為c的左子樹,hf為c的右子樹
        hf的確定在看前序遍歷f先被訪問
        f為根
        中序遍歷h先被訪問
        h為f的左子樹
        整棵樹就出來了
        3.
        希表和數(shù)組的定義,區(qū)別,優(yōu)缺點

        百度
        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ù)長度。strlen長度比如char a[2]={1,2} 嗎sizeof是2,strlen是3包括了/0而且sizeof是可以測int a[]這種的int a[2]={1,2} 的sizeof是8.2個4字節(jié)int。

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

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

        c面試題08-04

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

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

        軟件測試面試題及答案12-30

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

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

        已考面試題求答案07-11

        東坡畫扇閱讀原文以及答案08-04

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