黑客做的网站好用不,宜昌网站建设宜昌,网站设计 价格,苏州城乡建设网站将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个链表的存储空间#xff0c;不另外占用其它的存储空间。表中允许有重复的数据。
#includeiostream
using namespace std;
typedef struct list
{int data;list* next;
}list,*linklist;… 将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个链表的存储空间不另外占用其它的存储空间。表中允许有重复的数据。
#includeiostream
using namespace std;
typedef struct list
{int data;list* next;
}list,*linklist;
void Createlist(linklist l)
{l new list;l-next NULL;linklist p,r;r l;for (int i 0; i 5; i){p new list;cin p-data;r-next p;r p;}p-next NULL;
}
void Addlist(linklist L1, linklist L2)
{linklist L3, pa, pb,p;pa L1-next;pb L2-next;L3 L1, L3-next NULL;while (pa || pb){if (paNULL){p pb;pb pb-next;}else if (pbNULL){p pa;pa pa-next;}else if (pa-data pb-data){p pa;pa pa-next;}else{p pb;pb pb-next;}p-next L3-next;L3-next p;}delete L2;
}
void Printlist(linklist l)
{linklist p;p l-next;while (p){cout p-data ;p p-next;}
}
int main()
{linklist L1, L2;cout 输入第一个链表 endl;Createlist(L1);cout 输入第二个链表 endl;Createlist(L2);Addlist(L1, L2);cout 合并链表 endl;Printlist(L1);
} 设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C其中B表的结点为A表中值小于零的结点而C表的结点为A表中值大于零的结点链表A中的元素为非零整数要求B、C表利用A表的结点。
#includeiostream
using namespace std;
typedef struct list
{int data;list* next;
}list,*linklist;
void Createlist(linklist l)
{l new list;l-next NULL;linklist p,r;r l;for (int i 0; i 10; i){p new list;cin p-data;r-next p;r p;}p-next NULL;
}
void Separatelist(linklist L1, linklist L2, linklist L3)
{L3 new list;L3-next NULL;linklist p,r;p L1-next;L2 L1;L2-next NULL;while (p){r p-next;if (p-data 0){p-next L2-next;L2-next p;}else{p-next L3-next;L3-next p;}p r;}
}
void Printlist(linklist l)
{linklist p;p l-next;while (p){cout p-data ;p p-next;}cout endl;
}
int main()
{linklist L1, L2,L3;cout 输入第一个链表 endl;Createlist(L1);Separatelist(L1, L2, L3);cout 拆分链表 endl;Printlist(L2);Printlist(L3);
} 已知长度为n的线性表A采用顺序存储结构请写一时间复杂度为O(n)、空间复杂度为O (1的算法该算法删除线性表中所有值为ite m的数据元素。
#includeiostream
#define maxsize 100
using namespace std;
typedef struct node
{int data;
}Node;
typedef struct
{Node* elem;int length;
}Sqlist;
void Initlist(Sqlist L)
{L.elem new Node[maxsize];L.length 0;
}
int Createlist(Sqlist L)
{if (L.length maxsize) return 0;for (int i 0; i 10; i){cin L.elem[i].data;L.length;}return 1;
}
void Deletelist(Sqlist L, Node e)
{int k 0;for (int i 0; i L.length; i){if (L.elem[i].data ! e.data){L.elem[k].data L.elem[i].data;k;}}L.length k;
}
void Printlist(Sqlist L)
{for (int i0;iL.length;i){cout L.elem[i].data ;}cout endl;
}
int main()
{Sqlist A;Initlist(A);Createlist(A);cout 原线性表 endl;Printlist(A);cout 输入要删除的一个数 endl;Node n;cin n.data;Deletelist(A,n);Printlist(A);
}