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

      <small id="aebxz"><menu id="aebxz"></menu></small>
    1. 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&#160;&#160; struct&#160;&#160; List
      {&#160;&#160;&#160;
      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