題目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; }