1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| #include "SinList.h"
void menu() { printf("------------------------------\n"); printf("-- H. 头插元素 h. 头删元素 --\n"); printf("-- T. 尾插元素 t. 尾删元素 --\n"); printf("-- I. 插入元素 D. 删除元素 --\n"); printf("-- F. 查找元素 P. 打印元素 --\n"); printf("--------- Q. 退出 --------\n"); printf("------------------------------\n\n"); }
int main() { ListNode* pHead = (ListNode*)malloc(sizeof(ListNode)); pHead->next = NULL; char choose = 'Q'; do { menu(); printf("请选择:"); choose = getchar(); ElemType elem; int position = -1; getchar(); switch (choose) { case 'H': printf("请输入待插入元素值:"); scanf("%d", &elem); SinListHeadInsert(pHead, elem); getchar(); break; case 'h': SinListHeadDelete(pHead); break; case 'T': printf("请输入待插入元素值:"); scanf("%d", &elem); SinListTailInsert(pHead,elem); getchar(); break; case 't': SinListTailDelete(pHead); break; case 'I': printf("请输入待插入元素位序及值,例:2 5 >"); scanf("%d %d", &position, &elem); SinListInsert(pHead, position, elem); getchar(); break; case 'D': printf("请输入待删除元素位序:"); scanf("%d", &position); SinListDelete(pHead, position); getchar(); break; case 'F': printf("请输入待查找元素的值:"); scanf("%d", &elem); position = SinListFind(pHead, elem); getchar(); if (position == -1) { printf("元素:%d 不在单链表中\n", elem); } else { printf("元素:%d 的位序为:%d\n", elem, position); } break; case 'P': SinListPrint(pHead); break; case 'Q': pHead = Destory(pHead); printf("退出成功\n"); break; default: printf("选择错误,请重新选择!!!\n"); break; } } while (choose != 'Q');
return 0; }
|