程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 九度OJ 題目1181:遍歷鏈表

九度OJ 題目1181:遍歷鏈表

編輯:C++入門知識

題目1181:遍歷鏈表時間限制:1 秒 內存限制:32 兆 特殊判題:否 提交:1071 解決:437   題目描述: 建立一個升序鏈表並遍歷輸出。   輸入: 輸入的每個案例中第一行包括1個整數:n(1<=n<=1000),接下來的一行包括n個整數。   輸出: 可能有多組測試數據,對於每組數據, 將n個整數建立升序鏈表,之後遍歷鏈表並輸出。   樣例輸入: 4 3 5 7 9樣例輸出: 3 5 7 9來源: 2000年華中科技大學計算機研究生機試真題 [cpp]  /*********************************  *   日期:2013-2-20  *   作者:SJF0115  *   題號: 九度OJ 題目1181:遍歷鏈表  *   來源:http://ac.jobdu.com/problem.php?pid=1181  *   結果:AC  *   來源:2000年華中科技大學計算機研究生機試真題  *   總結:  **********************************/   #include<stdio.h>    #include<malloc.h>    typedef struct Node   {       int data;       struct Node *next;   }LinkList;      int main()   {       int i,n,a;       while(scanf("%d",&n) != EOF){           LinkList *head,*pre,*p,*newNode;           head = (LinkList*)malloc(sizeof(LinkList));           head->next = NULL;           //輸入數據            for(i = 0;i < n;i++){               //創建節點                newNode = (LinkList*)malloc(sizeof(LinkList));                              scanf("%d",&newNode->data);               //升序排列                pre = head;               p = head->next;               //找到插入位置                while(p){                   if(newNode->data < p->data){                       break;                   }                   pre = p;                   p = p->next;               }               //插入新節點                newNode->next = p;               pre->next = newNode;           }           //輸出            p = head->next;           printf("%d",p->data);           while(p->next){               p = p->next;               printf(" %d",p->data);           }           printf("\n");       }       return 0;   }     /********************************* *   日期:2013-2-20 *   作者:SJF0115 *   題號: 九度OJ 題目1181:遍歷鏈表 *   來源:http://ac.jobdu.com/problem.php?pid=1181 *   結果:AC *   來源:2000年華中科技大學計算機研究生機試真題 *   總結: **********************************/ #include<stdio.h> #include<malloc.h> typedef struct Node { int data; struct Node *next; }LinkList;   int main() { int i,n,a; while(scanf("%d",&n) != EOF){ LinkList *head,*pre,*p,*newNode; head = (LinkList*)malloc(sizeof(LinkList)); head->next = NULL; //輸入數據 for(i = 0;i < n;i++){ //創建節點 newNode = (LinkList*)malloc(sizeof(LinkList));   scanf("%d",&newNode->data); //升序排列 pre = head; p = head->next; //找到插入位置 while(p){ if(newNode->data < p->data){ break; } pre = p; p = p->next; } //插入新節點 newNode->next = p; pre->next = newNode; } //輸出 p = head->next; printf("%d",p->data); while(p->next){ p = p->next; printf(" %d",p->data); } printf("\n"); } return 0; }  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved