ds_orderedlist.cpp

看板FcuIecs-Ding作者 (飛機頭......帥)時間25年前 (2001/04/17 11:02), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
#include<stdio.h> #include<stdlib.h> typedef struct Tordered_list_node ordered_list_node; typedef struct Tordered_list_node { int data; ordered_list_node *next; } ordered_list_node; typedef struct { int size; ordered_list_node *top; } ordered_list; void insert(ordered_list *mlist, int data); void remove(ordered_list *mlist, int target); void traverse(ordered_list *mlist); int main() { int data; ordered_list *mlist = (ordered_list *)malloc(sizeof(ordered_list)); mlist->size = 0; mlist->top = NULL; printf("Insert number:"); while (1) { scanf("%d", &data); if (data == -1) break; else insert(mlist, data); } printf("Ordered list:"); traverse(mlist); while (1) { printf("Enter number to remove:"); scanf("%d", &data); if (data == -1) break; else remove(mlist, data); traverse(mlist); } return 0; } void insert(ordered_list *mlist, int data) { ordered_list_node *curnode, *newnode = (ordered_list_node *)malloc(sizeof(ordered_list_node)); newnode->data = data; if (mlist->size == 0) { newnode->next = NULL; mlist->top = newnode; } else if (data < mlist->top->data) { newnode->next = mlist->top; mlist->top = newnode; } else { curnode = mlist->top; while (curnode->next != NULL && data >= curnode->next->data) curnode = curnode->next; newnode->next = curnode->next; curnode->next = newnode; } mlist->size++; } void remove(ordered_list *mlist, int target) { ordered_list_node *curnode, *rmvnode; if (mlist->size == 0) { printf("Ordered list empty...\n"); } else if (mlist->top->data == target) { rmvnode = mlist->top; mlist->top = mlist->top->next; free(rmvnode); mlist->size--; } else { curnode = mlist->top; while (curnode->next != NULL && curnode->next->data != target) curnode = curnode->next; rmvnode = curnode->next; curnode->next = curnode->next->next; free(rmvnode); mlist->size--; } } void traverse(ordered_list *mlist) { ordered_list_node *curnode = mlist->top; while (curnode != NULL) { printf(" %d", curnode->data); curnode = curnode->next; } puts(""); } -- 全世界都知道我喜歡妳 唯一不知道ㄉ........ 就是妳.......
文章代碼(AID): #wsx9O00 (FcuIecs-Ding)