链表逆序的实现方法
来源:互联网 发布:淘宝卖家货到付款拒签 编辑:程序博客网 时间:2024/06/06 02:08
typedef struct Node{ char iElement; Node* pNext;};typedef struct Link{ Node* pHead; int iLinkSize;};Link* initLink(){ Link* pLink = (Link*)malloc(sizeof(Link)); if (NULL == pLink) { printf_s("链表初始化失败"); return NULL; } pLink->pHead = NULL; pLink->iLinkSize = 0; return pLink;}void CreateLink(Link* pLink,int ele){ Node* pNode = (Node*)malloc(sizeof(Node)); if (NULL == pNode) { return; } pNode->iElement = ele; pNode->pNext = pLink->pHead; pLink->pHead = pNode; pLink->iLinkSize++;}void ShowLink(Link* pLink){ if (NULL == pLink) { return; } Node* pNode = pLink->pHead; while (pNode) { printf_s("%c ",pNode->iElement); pNode = pNode->pNext; } printf_s("\n");}Link* ReLink(Link* pLink){ Link* pTemp1= initLink(); Link* pTemp2= initLink(); pTemp1 = pLink; pLink = initLink(); while(pTemp1->pHead) { pTemp2->pHead = pTemp1->pHead; pTemp1->pHead = pTemp1->pHead->pNext; pTemp2->pHead->pNext = pLink->pHead; pLink->pHead = pTemp2->pHead; } return pLink;}int main(){ Link* pLink = initLink(); char iEle; cin>>iEle; while (iEle != '#') { CreateLink(pLink,iEle); cin>>iEle; } ShowLink(pLink); Link* pReLink = ReLink(pLink); ShowLink(pReLink); free(pLink); return 0;}
运行结果:
简单点的算法试下如下:
Link* ResLink(Link* pHead){ Link* pLink1,pLink2; pLink1 = pHead; pHead = NULL; while (pLink1) { pLink2 = pLink1; pLink1 = pLink1->next; pLink2->next = pHead; pHead = pLink2; } return pHead;}
0 0
- 链表逆序的实现方法
- 链表的逆序实现
- 实现数字逆序的方法
- 实现链表逆序
- 实现链表逆序
- 实现链表逆序
- 递归方法实现逆序
- 递归方法实现逆序
- 递归方法实现逆序
- 递归方法实现逆序
- 链表逆序的循环实现和递归实现
- Java实现链表逆序
- C++实现链表逆序
- 编码实现链表逆序
- 指针实现链表逆序
- 链表的逆序
- 链表的逆序
- 链表的逆序
- 透过ISA95看看国外的业务专家才是真正的叫懂业务
- makefile学习经验(2)----静态链接
- Cocos2d-x项目过程中遇到的一些问题总结
- Longest Consecutive Sequence
- npm离线安装?用代理吧!
- 链表逆序的实现方法
- WPF/Silverlight中的RichTextBox总结
- 用PHP表单传递数组
- NYOJ 661 亲亲串
- Maven介绍(创建工程项目以及下载所需要的jar包)
- 动态链接如何确定是调用的哪一个函数
- makefile学习经验(3)---动态链接
- JDK自带命令native2ascii的用法
- 四种加密算法之AES的源码-C++