数据结构 线性表
弱者
爱猫忍者
展开
-
对一个不带头结点的单链表进行逆置
#include#includeusing namespace std;struct node{ int data; node* next;};node *L;node* reverse(node *h){ node *p,*q; p=NULL; q=h; while(q!=NULL) { h=h->next; q->next原创 2014-01-22 22:10:04 · 8176 阅读 · 0 评论 -
单链表的归并1
要求:创建两个无头结点的单链表,头指针分别为ha,hb,链中有数据data和指针域next,两个链表的数据都按照不递减存放,现在要求将hb归并到ha表中,归并后要求ha依然递增有效,归并中的ha表中的元素如果hb表中也有,则该元素不再重复归并到ha中,hb在算法中不能被破坏。#includeusing namespace std;struct node{ int data;原创 2014-01-23 17:50:54 · 1169 阅读 · 0 评论 -
链表合并 求两个递增链表的并
#include#includeusing namespace std;struct node{ int data; node* next;};node* build(node* x){ x=(node*)malloc(sizeof(node)); node *y,*z; y=x; y->next=NULL; int n; cin>>n;原创 2014-01-23 19:58:56 · 1078 阅读 · 0 评论 -
链表的集合操作Av(B^C)
#includeusing namespace std;struct node{ int data; node* next;};node *build(node* p){ int n; cout<<"请输入链表长度"<<endl; cin>>n; p=(node*)malloc(sizeof(node)); node *r,*q; r=p;原创 2014-01-25 20:30:24 · 1032 阅读 · 0 评论 -
分解链表
写算法将单链表L1分解为两个链表,其中以L1为头的链表保持原来向后的链接,另一个链表的头为L2,将其链接方向和L1的方向相反,其中L1包含原链表的奇数序号的结点,L2包含原链表中偶数序号的结点。#includeusing namespace std;struct node{ int data; node* next;};node *build(node* p){原创 2014-01-26 16:03:22 · 2017 阅读 · 0 评论 -
链表合并
清华大学1995。已知三个带头结点的线性链表A,B,C中的结点均依照自小到大非递减排列(可能存在两个以上值相同的结点),编写算法对A表进行如下操作:使操作后的链表A中仅存留三个表中均包含的元素的结点,且没有值相等的结点,并释放所有无用的结点。限定算法的时间复杂度为O(m+n+p),其中m,n,p分别为三个单链表的长度。#includeusing namespace std;stru原创 2014-01-26 16:53:15 · 739 阅读 · 0 评论