#include<stdioh>
#include<stdlibh>
/线性表/
struct TLink {
int data;
struct TLink next;
};/end struct TLink/
/生成新元素/
struct TLink new_item(int number)
{
struct TLink r = 0;
r = (struct TLink )malloc(sizeof(struct TLink));
r->data = number;
r->next = 0;
return r;
}/end new_item/
/在线性表中查询数据/
struct TLink lookup(struct TLink root, int number)
{
struct TLink h = root;
while(h) {
if (h->data == number) return h;
h = h->next ;
}/end lookup/
return 0;
}
/在线性表中追加一个数据/
void append(struct TLink root, int number)
{
struct TLink r = 0, n = 0;
if (!root) return ;
/不记录重复元素/
if (lookup(root, number)) return;
/如果表为空则新建表/
r = root;
if (!r) {
root = new_item(number);
return ;
}/end if/
/为保证为有序线性表,如果数据比表头还小则作为表头/
if (number < r->data ) {
n = new_item(number);
n->next = r;
root = n;
return ;
}/end if/
/在有序线性表中查找位置插入元素/
while(r) {
n = r->next ;
/如果已经是表尾则直接追加/
if (!n) {
n = new_item(number);
r->next = n;
return ;
}/end if/
/在中央某处插入/
if (number < n->data ) {
r->next = new_item(number);
r->next->next = n;
return ;
}/end if/
r = n;
}/end while/
}/end append/
/打印有序线性表/
void print(struct TLink root)
{
struct TLink r = root;
printf("");
while(r) {
printf("%d ", r->data );
r = r->next ;
}/end while/
printf("\b\n");
}/end print/
/将有序线性表h1合并至有序线性表h0,并销毁线性表h1/
void merge(struct TLink h0, struct TLink h1)
{
struct TLink h = 0, k = 0;
if (!h0 || !h1) return ;
h = h1;
while(h) {
append(h0, h->data );
k = h;
h = h->next ;
free(k);
}/end h/
h1 = 0;
}
int main(void)
{
int i = 0; struct TLink x=0, y = 0;
int a[] = {8,4,3,9,5,1};
int b[] = {7,2,1,5,6,0};
printf("原数据为:\n数组A:");
for(i = 0; i < 6; i++) {
printf("%d ", a[i]);
append(&x, a[i]);
}/next/
printf("\b\n数组B:");
for(i = 0; i < 6; i++) {
printf("%d ", b[i]);
append(&y, b[i]);
}/next/
printf("\b\n转换为有序线性表\nA:");
print(x);
printf("B:");
print(y);
printf("AB合并后为:");
merge(&x, &y);
print(x);
return 0;
}
例子如下:
直接编译,程序输出结果中任意输入四位数字,程序执行结果如下图所示:
知识扩展:
编程是一种融汇贯通的东西,学会基础到后边就越来越简单了。而且可以向多种语言发展。 c语言 是一种可移植性和多系统平台的编程语言 java 是一种功能强大可移植性强的开发语言。
HTML 是一种超文本标记语言,Java Script 是一种基于客户端的脚本语言 程序语言,顾名思义就是一种语言,是用于交流的,程序就是计算机的语言和人类语言的翻译者,做一个程序员就是要把人类世界的问题用计算机的方法去解决和展现。
以上就是关于用C++写出完整程序。全部的内容,包括:用C++写出完整程序。、求一个c语言完整程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)