c语言链表大例题.pdf
《c语言链表大例题.pdf》由会员分享,可在线阅读,更多相关《c语言链表大例题.pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include#include#include#include#define TRUE 1#define FALSE 0#define INPUT 1#define SHOW 2#define REMOVE 3#define INSERT 4#define SORT 5#define REV ANGE 6#define EXIT 7 typedef struct POINT int x,y;/x和 y 分别存储点的横、纵坐标值 struct POINT*next;/next用以指向下一个同类实例(节点)POINT;POINT*InputPoints(void);void showPointL
2、ink(POINT*head);void showOnePoint(POINT);void destroyLink(POINT*head);POINT*searchPrePoint(POINT*head,int x,int y);int removePoint(POINT*head);void sortPointByX(POINT*head);POINT*revangePointLink(POINT*head);void insertPoint(POINT*head);void showMenu(void);int selectedAction(void);void sayGoodBye(vo
3、id);void sayGoodBye(void)int i;printf(nnnnnn);for(i=0;i 3;i+)printf(欢迎您的使用!n 按任意键继续.n);getch();printf(请您多提宝贵意见!n 按任意键继续.n);getch();printf(祝您身体健康!n 按任意键继续.n);getch();printf(谢谢使用!n 按任意键继续.n);getch();printf(不送了!n 按任意键继续.n);getch();printf(请您走好!n 按任意键继续.n);getch();printf(不要忘了我哦!n 按任意键继续.n);getch();printf
4、(再见!n 按任意键继续.n);getch();int selectedAction(void)int choose=0;while(choose 7)showMenu();choose=getche();if(choose 7)choose=0;else choose-=0;if(choose=0)printf(n 输入错误!);printf(n 请重新选择(1-7);getch();return choose;void showMenu(void)system(cls);printf(nn 屏幕上的点点的管理信息系统n);printf(n 1)录入信息);printf(n 2)显示信息);
5、printf(n 3)删除信息);printf(n 4)插入信息);printf(n 5)排序);printf(n 6)逆序);printf(n 7)退出);printf(n 请选择:);void insertPoint(POINT*h)int Newx,Newy,Oldx,Oldy;POINT*p,*q;printf(插入前:);showPointLink(*h);/1、确定新点坐标;printf(请输入新点坐标:);scanf(%d%d,&Newx,&Newy);p=(POINT*)malloc(sizeof(POINT);p-x=Newx;p-y=Newy;p-next=NULL;/2、
6、确定插入点坐标;printf(再输入插入点坐标:);scanf(%d%d,&Oldx,&Oldy);/3、查找插入点的前驱节点;q=searchPrePoint(*h,Oldx,Oldy);/4、插入节点。if(q=NULL)p-next=*h;*h=p;else if(q-next=NULL)q-next=p;else p-next=q-next;q-next=p;printf(插入后:);showPointLink(*h);POINT*revangePointLink(POINT*h)POINT*p,*q;printf(逆序前:);showPointLink(h);if(h)p=h;h=h
7、-next;p-next=NULL;while(h)q=h;h=h-next;q-next=p;p=q;printf(逆序后:);showPointLink(p);return p;void sortPointByX(POINT*h)POINT*p,*q,t,*r;printf(n 排序前的结果是:);showPointLink(h);printf(n);for(p=h;p;p=p-next)for(q=p-next;q;q=q-next)if(p-x q-x)t=*p;*p=*q;*q=t;r=p-next;p-next=q-next;q-next=r;printf(n 排序后的结果是:);
8、showPointLink(h);printf(n);/if(!removePoint(Head)这是主函数中调用该函数的语句 int removePoint(POINT*h)/*该函数的操作应分为 3 步:1、输入要删除的点的坐标;2、查找该点的前驱节点;3、删除该点。*/int x,y,Ok=TRUE;POINT*p,*q;/1、输入要删除的点的坐标;printf(nnn 这是删除功能n 原有点坐标如下:n);showPointLink(*h);printf(n 请输入要删除的点的坐标:);scanf(%d%d,&x,&y);/2、查找该点的前驱节点;p=searchPrePoint(*h
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 链表大 例题
限制150内