使用者工具

網站工具


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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki