熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

數據結構與算法線性表復習習題【2】

2013-11-15 15:26:23  來源: 數據結構 

   已知L是無表頭結點的單鏈表且P結點既不是首元結點也不是尾元結點試從下列提供的答案中選擇合適的語句序列

  a 在P結點後插入S結點的語句序列是__________________

  b 在P結點前插入S結點的語句序列是__________________

  c 在表首插入S結點的語句序列是__________________

  d 在表尾插入S結點的語句序列是__________________

  () P>next=S;

  () P>next=P>next>next;

  () P>next=S>next;

  () S>next=P>next;

  () S>next=L;

  () S>next=NULL;

  () Q=P;

  () while(P>next!=Q) P=P>next;

  () while(P>next!=NULL) P=P>next;

  () P=Q;

  () P=L;

  () L=S;

  () L=P;

  解a () ()

  b () () () () ()

  c () ()

  d () () ()

   已知L是帶表頭結點的非空單鏈表且P結點既不是首元結點也不是尾元結點試從下列提供的答案中選擇合適的語句序列

  a 刪除P結點的直接後繼結點的語句序列是____________________

  b 刪除P結點的直接前驅結點的語句序列是____________________

  c 刪除P結點的語句序列是____________________

  d 刪除首元結點的語句序列是____________________

  e 刪除尾元結點的語句序列是____________________

  () P=P>next;

  () P>next=P;

  () P>next=P>next>next;

  () P=P>next>next;

  () while(P!=NULL) P=P>next;

  () while(Q>next!=NULL) { P=Q; Q=Q>next; }

  () while(P>next!=Q) P=P>next;

  () while(P>next>next!=Q) P=P>next;

  () while(P>next>next!=NULL) P=P>next;

  () Q=P;

  () Q=P>next;

  () P=L;

  () L=L>next;

  () free(Q);

  解a () () ()

  b () () () () ()

  c () () () () ()

  d () () () ()

  e () () () ()

   已知P結點是某雙向鏈表的中間結點試從下列提供的答案中選擇合適的語句序列

  a 在P結點後插入S結點的語句序列是_______________________

  b 在P結點前插入S結點的語句序列是_______________________

  c 刪除P結點的直接後繼結點的語句序列是_______________________

  d 刪除P結點的直接前驅結點的語句序列是_______________________

  e 刪除P結點的語句序列是_______________________

  () P>next=P>next>next;

  () P>priou=P>priou>priou;

  () P>next=S;

  () P>priou=S;

  () S>next=P;

  () S>priou=P;

  () S>next=P>next;

  () S>priou=P>priou;

  () P>priou>next=P>next;

  () P>priou>next=P;

  () P>next>priou=P;

  () P>next>priou=S;

  () P>priou>next=S;

  () P>next>priou=P>priou;

  () Q=P>next;

  () Q=P>priou;

  () free(P);

  () free(Q);

  解a () () () ()

  b () () () ()

  c () () () ()

  d () () () ()

  e () () ()

   簡述以下算法的功能

  () Status A(LinkedList L) { //L是無表頭結點的單鏈表

  if(L && L>next) {

  Q=L;L=L>next;P=L;

  while(P>next) P=P>next;

  P>next=Q;Q>next=NULL;

  }

  return OK;

  }

  () void BB(LNode *s LNode *q) {

  p=s;

  while(p>next!=q) p=p>next;

  p>next =s;

  }

  void AA(LNode *pa LNode *pb) {

  //pa和pb分別指向單循環鏈表中的兩個結點

  BB(papb);

  BB(pbpa);

  }

  解() 如果L的長度不小於將L的首元結點變成尾元結點

  () 將單循環鏈表拆成兩個單循環鏈表


From:http://tw.wingwit.com/Article/program/sjjg/201311/23410.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.