首页 / C语言 / C语言 百炼成钢23
C语言 百炼成钢23
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C语言 百炼成钢23,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2890字,纯文字阅读大概需要5分钟。
内容图文
![C语言 百炼成钢23](/upload/InfoBanner/zyjiaocheng/1183/86cfa3f5ca1649eb9c5241f4250788ad.jpg)
/* 题目59:链表如下 typedef struct _LinkList { int data; struct _LinkList*next; } LinkList; 有如下结点数据域 1 2 3 4 5 6 7 8 12 19 。。。。 要求1:创建链表 要求2:删除结点值为偶数的结点 ;70分 要求3:编写测试用例 30分 */ #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct _linklist{ int data; struct _linklist *pnext; }LinkList; //初始化链表头结点int InitLink(LinkList **pout/*out*/){ int ERRO_MSG = 0; if (pout==NULL) { ERRO_MSG = 1; printf("pout==NULL erro msg:%d\n", ERRO_MSG); return ERRO_MSG; } LinkList * phead = (LinkList *)malloc(sizeof(LinkList)); if (phead==NULL) { ERRO_MSG = 2; printf("分配内存失败 erro msg:%d\n", ERRO_MSG); return ERRO_MSG; } phead->data = 0; phead->pnext = NULL; *pout = phead; return ERRO_MSG; } //创建链表节点int CreateLink(LinkList *pin/*in*/,int data){ int ERRO_MSG = 0; if (pin==NULL) { ERRO_MSG = 1; printf("pin==NULL erro msg:%d\n", ERRO_MSG); return ERRO_MSG; } LinkList *pHead = pin; LinkList *pCurrent = pHead->pnext; //创建新节点 LinkList *pMalloc = (LinkList *)malloc(sizeof(LinkList)); pMalloc->data = data; pMalloc->pnext = NULL; if (pCurrent==NULL) { pHead->pnext = pMalloc; return ERRO_MSG; } //遍历到链表节点末尾位置while (pCurrent->pnext){ pCurrent = pCurrent->pnext; } pCurrent->pnext = pMalloc; return ERRO_MSG; } //删除结点值为偶数的结点int DelLink(LinkList *pin/*in*/){ int ERRO_MSG = 0; if (pin == NULL) { ERRO_MSG = 1; printf("pin==NULL erro msg:%d\n", ERRO_MSG); return ERRO_MSG; } LinkList *pHead = pin; LinkList *pCurrent = pHead->pnext; LinkList * pPrior = pHead; while (pCurrent){ if (pCurrent->data%2==0) { pPrior->pnext = pCurrent->pnext; //释放这个节点free(pCurrent); pCurrent = NULL; pCurrent = pPrior->pnext; } else{ pPrior = pCurrent; pCurrent = pCurrent->pnext; } } return ERRO_MSG; } //打印链表void PrintfA(LinkList *pin/*in*/){ if (pin==NULL) { printf("链表不可以为空!\n"); } LinkList *pHead = pin; LinkList *pCurrent = pHead->pnext; while (pCurrent){ printf("%d\n", pCurrent->data); pCurrent = pCurrent->pnext; } } //释放链表int FreeLink(LinkList **pin/*in*/){ int ERRO_MSG = 0; if (pin==NULL) { ERRO_MSG = 1; printf("pin==NULL erro msg:%d\n", ERRO_MSG); return ERRO_MSG; } LinkList *pHead = *pin; LinkList *pCurrent = pHead->pnext; LinkList *pPrior = pHead; while (pCurrent){ pPrior->pnext = pCurrent->pnext; //释放内存if (pCurrent) { free(pCurrent); pCurrent = NULL; } pCurrent = pPrior->pnext; } if (pHead) { free(pHead); pHead = NULL; } return ERRO_MSG; } void main(){ int i = 0,ret=0; //初始化链表头结点 LinkList *pHead = NULL; //初始化头结点 InitLink(&pHead); //创建节点for (i = 0; i < 9; i++) { ret=CreateLink(pHead, i + 1); if (ret!=0) { printf("创建链表节点报错!\n"); //释放所有链表节点goto END; } } //打印所有节点 PrintfA(pHead); //删除部分节点 ret=DelLink(pHead); if (ret!=0) { printf("删除偶数节点报错!\n"); //释放所有链表节点goto END; } //打印所有节点 PrintfA(pHead); END: //释放所有节点 FreeLink(&pHead); system("pause"); }
原文:http://www.cnblogs.com/zhanggaofeng/p/5597743.html
内容总结
以上是互联网集市为您收集整理的C语言 百炼成钢23全部内容,希望文章能够帮你解决C语言 百炼成钢23所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。