You are not allowed to perform this action
c:homework:temp:hw16
國立屏東商業技術學院 資訊工程系 程式設計(二)
作業16
具備已排序特性的鏈結串列實作
turnin code c.hw16
due date: June 3, 23:59
目的
以鏈結串列的作業為基礎,實作具備已排序特性的鏈結串列
第1題
參考下面的Makefile
main: sortedlinkedlist.o main.c
cc main.c sortedlinkedlist.o -o main
sortedlinkedlist.o: sortedlinkedlist.c sortedlinkedlist.h
cc -c sortedlinkedlist.c
clean:
rm -f *.*~ *~ *.o main
將宣告置於sortedlinkedlist.h中
struct node
{
int value;
struct node *next;
};
typedef struct node Node;
void showAllNodes();
Node *createANode(int num);
void add(Node *newNode);
void removeANode(Node *delNode);
Node *search(int v);
main.c的內容如下:
#include <stdio.h>
#include <stdlib.h>
#include "sortedlinkedlist.h"
int main()
{
char cmd;
int num;
int quit=0;
Node *n;
while(!quit)
{
printf("COMMAND: ");
scanf(" %c", &cmd);
switch(cmd)
{
case 'h':
printf("\tq : quit\n");
printf("\th : help\n");
printf("\ti : data insertion\n");
printf("\td : data deletion\n");
printf("\ts : show all data\n");
break;
case 'i':
printf("\tNumber: ");
scanf(" %d", &num);
n=createANode(num);
add(n);
break;
case 'd':
printf("\tNumber: ");
scanf(" %d", &num);
n=search(num);
if(n!=NULL)
{
removeANode(n);
}
else
{
printf("the number does not exist!\n");
}
break;
case 's':
showAllNodes();
break;
case 'q':
quit=1;
break;
default:
printf("Bad command");
}
}
return 0;
}
請完成sortedlinkedlist.c的實作。以make完成編譯後,執行./main可得到以下的結果:
[23:35 user@ws hw16]$ ./main COMMAND: i Number: 50 COMMAND: i Number: 2 COMMAND: s 2-->50-->NULL COMMAND: i Number: 100 COMMAND: i Number: 80 COMMAND: s 2-->50-->80-->100-->NULL COMMAND: d Number: 80 COMMAND: s 2-->50-->100-->NULL COMMAND: h q : quit h : help i : data insertion d : data deletion s : show all data COMMAND: q [23:35 user@ws hw16]$
注意:
- 題目中的「Makefile」、「sortedlinkedlist.h」及「main.c」可在「/home/stu/public/c/2014SCHW16」下載。
- 可於「/home/stu/public/c/2014SCHW16」取得main,測試本題應有的執行結果。
- 此題僅需turnin一個檔案「sortedlinkedlist.c」
c/homework/temp/hw16.txt · 上一次變更: 2019/07/02 15:01 由 127.0.0.1
