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

數據結構考研分類復習真題 第二章 答案[50]

2022-06-13   來源: 數據結構 

  類似本題的其它題目的解答

  ()與上面第題基本相同只是明確說明p指向的不是鏈表最後那個結點

  ()與上面第題基本相同僅敘述不同故不再作解答

  .[題目分析] 本題鏈表結點的數據域存放英文單詞可用字符數組表示單詞重復出現時鏈表中只保留一個單詞是否相等的判斷使用strcmp函數結點中增設計數域統計單詞重復出現的次數

  typedef  struct  node
  {int  freg;∥頻度域記單詞出現的次數
  char  word[maxsize];∥maxsize是單詞中可能含有的最多字母個數
  struct  node  *next;
  }node *LinkedList;
  ()LinkedList creat()∥建立有n(n>)個單詞的單向鏈表若單詞重復出現則只在鏈表中保留一個
  {LinkedList la;
  la=(LinkedList)malloc(sizeof(node));∥申請頭結點
  la>next=null;∥鏈表初始化
  for(i=;i<=n;i++)∥建立n個結點的鏈表
  {scanf(%sa);∥a是與鏈表中結點數據域同等長度的字符數組
  p=la>next;pre=p;∥p是工作指針pre是前驅指針
  while(p!=null)
  if(strcmp(p>dataa)==) {p>freg++;break;}∥單詞重復出現頻度增
  else {pre=p;p=p>next;}∥指針後移
  if(p==null)∥該單詞沒出現過應插入
  {p=(LinkedList)malloc(sizeof(node));
  strcopy(p>dataa);p>freg=;p>next=null;pre>next=p;
  }∥將新結點插入到鏈表最後
  }∥結束for循環
  return(la);
  }∥結束creat算法

[]  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  


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