将两个带头节点链表单链表,合并成一个新的带头节点链表……
来源:互联网 发布:python 类 私有变量 编辑:程序博客网 时间:2024/05/10 23:23
问题链接……
#include<stdio.h>#include<stdlib.h>typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;LinkList link(LinkList S,LinkList T)//将S,T链接成新的链表并返回新链表指针……{LinkList p,q,r;p=q=(LinkList)malloc(sizeof(LNode));//带头节点while(S->next!=NULL)//复制S链表{r=(LinkList)malloc(sizeof(LNode));r->data=S->next->data;q->next=r;q=r;S=S->next;}//q->next=T->next;//如果这样的的话,可以直接返回值,虽然没改变S,T的原有结构,但只要改变T,那么p的值也会变,改变S,p的值不会变while(T->next!=NULL)//链接复制T链表{r=(LinkList)malloc(sizeof(LNode));r->data=T->next->data;q->next=r;q=r;T=T->next;}q->next=NULL;return p;//返回复制链表指针}void main(){LinkList S,T,P,q,r;int k=10;S=q=(LinkList)malloc(sizeof(LNode));//S带头节点while(k)//为S分配空间及赋值{r=(LinkList)malloc(sizeof(LNode));r->data=k;q->next=r;q=r;k--;}q->next=NULL;//S的最后一个节点的下一个节点置空k=10;T=q=(LinkList)malloc(sizeof(LNode));//T带头节点while(k)//为T分配空间及赋值{r=(LinkList)malloc(sizeof(LNode));r->data=10-k;q->next=r;q=r;k--;}q->next=NULL;//T的最后一个节点的下一个节点置空P=link(S,T);//调用函数得到S,T链接后的新链表printf("S:\n");//下面为输出各链表的值while(S->next!=NULL){printf("%d ",S->next->data);S=S->next;}printf("\nT:\n");while(T->next!=NULL){printf("%d ",T->next->data);T=T->next;}printf("\nP:\n");while(P->next!=NULL){printf("%d ",P->next->data);P=P->next;}printf("\n\n");}
- 将两个带头节点链表单链表,合并成一个新的带头节点链表……
- 带头节点和不带头节点的链表
- C语言合并两个带头节点升序排列链表
- 带头节点的链表
- 带头节点的循环链表及两个循环链表的合并
- 一个简单的不带头节点链表
- 带头节点链表和不带头节点链表的初始化
- 链表的创建(带头节点以及不带头节点)
- 笔试题四:带头节点head两个链表合并,并且有序
- 双向循环带头节点链表
- 不带头节点的链表的不带头结点的链表,仅供参考
- 带头节点的链表和不带头结点的链表有何不同
- 带头节点的链表的一些操作
- 不带头节点链表逆序的两种方法
- 不带头节点的双向循环链表基本操作
- 约瑟夫问题(带头节点的循环链表)
- 不带头节点的单向链表逆序
- 带头节点链表的前插法,后插法,顺序添加法
- VC 语音识别程序做法 (1)
- 软件项目风险评估报告
- java文件读写操作大全
- 多个form窗体调用同一控件,notifyIcon
- 如何写出好代码
- 将两个带头节点链表单链表,合并成一个新的带头节点链表……
- 一起感悟
- C++写好代码的10个秘密
- 什么是百度权重?我们应该如何提高网站的百度权重?
- 牛人言论语录
- 调整屏幕亮度
- 获取主机MAC地址
- Android开发者应该深入学习的10个开源应用项目
- 单例模式的七种写法