合并有序排列的链表
来源:互联网 发布:js json转换对象数组 编辑:程序博客网 时间:2024/06/01 09:26
近来,稍有闲暇,不知道该干些什么,设计模式复杂,枯燥,又没有具体的项目可以应对,还是练练思维,练练基础吧。哪天换工作说不定也用得上。就看了腾讯的面试题,有一个题目比较感兴趣,不过以现在的能力没有那么快写出来,所以才进去不了,不然去那里进修下,也是个不错的选择!题目就是:合并有序排列的链表。哈哈,能力有限,大家多多指正!代码如下:
#include "stdafx.h"#include<iostream> using namespace std; typedef struct Node{ int number; struct Node* next;}Node,*LinkList;bool init_linkList(LinkList* list){ *list = (LinkList)malloc(sizeof(Node));(*list)->next = NULL; return true;}bool createList(LinkList* list,int num,int elem[]){ Node* pfirst = *list; int li_loop = 0;Node* snode;while (li_loop < num){ snode = (Node*)malloc(sizeof(Node)); snode->number = elem[li_loop]; snode->next = NULL; pfirst->next = snode; pfirst = pfirst->next; li_loop++;} return true;}void printList(LinkList* list){ Node* pnode = (*list)->next; while (pnode!=NULL) { printf("list node value=%d\n",pnode->number); pnode = pnode->next; } }bool destroyList(LinkList* list){ Node* pNode = *list; Node* pre = *list;int count = 0;while(pre->next!=NULL){ pNode = pre; pre = pre->next; free(pNode); pNode = NULL; count++; } if (pre!=NULL){free(pre); pre = NULL;count++;} printf("release memory count=%d\n",count); return true;}bool mergeList(LinkList* alist,LinkList* blist){ Node* p; Node* pre;Node* pbHead = *blist; p = *alist;pre = *alist;Node* pa = (*alist)->next;Node* pb = (*blist)->next;while(pa&&pb){ //blist表节点和入alist if (pa->number > pb->number) { pre->next = pb; pb = pb->next; pre = pre->next; pre->next = pa; } else { pre = pa; pa = pa->next; }} pre->next = pa ? pa:pb; //清空另外一个节点的头节点if (pbHead!=NULL){ free(pbHead);pbHead->next = NULL;} return true;}//int main(){ LinkList al;LinkList bl; //初始化链表 init_linkList(&al); init_linkList(&bl); int a[6]={2,2,3,5,7,9}; int b[5]={1,4,6,8,10}; //创建2个链表 createList(&al,6,a); createList(&bl,5,b); //打印2个链表 printList(&al); printList(&bl); //合并有序报表 mergeList(&al,&bl); printList(&al); //释放内存 destroyList(&al); return 1;}
2 0
- 合并有序排列的链表
- 有序的合并两个有序链表
- 两个有序链表合并成一个新的链表,合成的链表一样有序排列
- 合并有序的链表
- 有序链表的合并
- 有序链表的合并
- 有序链表的合并
- 有序链表的合并
- 有序链表的合并
- 有序链表的合并
- 有序链表的合并
- 有序链表合并&有序数组合并
- 有序链表合并
- 合并有序链表
- 合并有序链表
- 合并有序链表
- 合并有序链表
- 有序链表合并
- SQL SERVER 2008 “阻止保存要求重新创建表的更改” 解决方法
- linux java环境配置
- 小波变换 完美通俗解读【转载】
- LeetCode 035 Search Insert Position
- LoadRunner常用函数
- 合并有序排列的链表
- DataListBox的渲染技术
- tiny6410裸机实验第5章--------------DDR(代码)
- 解决读取cookie出现乱码情况
- ORACLE 11g 透明网关 for SQL Server 安装配置
- JQuery实现背景图片渐变!
- [jQuery套件]自動完成–AutoSuggest
- jqMobi中去掉Backbutton
- Linux添加sudoer