第二章链表综合练习

发布 2022-07-14 23:24:28 阅读 1598

// 程序名)

#include<>

#include<>

#include<> malloc()等。

#include<> int_max等。

#include<> eof(=^z或f6),null

#include<> atoi()

#include<> eof()

#include<> floor(),ceil(),abs()

#include<> exit()

#include<> cout,cin

/函数结果状态**。

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2因为在中已定义overflow的值为3,故去掉此行。

typedef int status; /status是函数的类型,其值是函数结果状态**,如ok等。

typedef int boolean; /boolean是布尔类型,其值是true或false

/ 线性表的单链表存储结构。

struct lnode

elemtype data;

lnode *next;

typedef lnode *linklist; /另一种定义linklist的方法。

/ 链表的创建和合并。

#include""

typedef int elemtype;

#include""

#include""

void createlist(linklist &l,int n) /算法2.11

//逆位序(插在表头)输入n个元素的值,建立带表头结构的单链线性表l

int i;

linklist p;

l=(linklist)malloc(sizeof(lnode));

l->next=null; /先建立一个带头结点的单链表。

printf("请输入%d个数据",n);

for(i=n;i>0;--i)

p=(linklist)malloc(sizeof(lnode));生成新结点。

scanf("%d",&p->data); 输入元素值。

p->next=l->next; /插入到表头。

l->next=p;

void createlist2(linklist &l,int n)

//正位序(插在表尾)输入n个元素的值,建立带表头结构的单链线性表。

int i;

linklist p,q;

l=(linklist)malloc(sizeof(lnode));生成头结点。

l->next=null;

q=l;printf("请输入%d个数据",n);

for(i=1;i<=n;i++)

p=(linklist)malloc(sizeof(lnode));

scanf("%d",&p->data);

q->next=p;

q=q->next;

p->next=null;

void mergelist(linklist la,linklist &lb,linklist &lc)//算法2.12

//已知单链线性表la和lb的元素按值非递减排列。

/归并la和lb得到新的单链线性表lc,lc的元素也按值非递减排列。

linklist pa=la->next,pb=lb->next,pc;

lc=pc=la; /用la的头结点作为lc的头结点。

while(pa&&pb)

if(pa->data<=pb->data)

pc->next=pa;

pc=pa;

pa=pa->next;

elsepc->next=pb;

pc=pb;

pb=pb->next;

pc->next=pa?pa:pb; /插入剩余段。

free(lb); 释放lb的头结点。

lb=null;

void visit(elemtype c) /listtr**erse()调用的函数(类型要一致)

printf("%d ",c);

void main()

int n=5;

linklist la,lb,lc;

printf("按非递减顺序, "

createlist2(la,n); 正位序输入n个元素的值。

printf("la=")输出链表la的内容。

listtr**erse(la,visit);

printf("按非递增顺序, "

createlist(lb,n); 逆位序输入n个元素的值。

printf("lb=")输出链表lb的内容。

listtr**erse(lb,visit);

mergelist(la,lb,lc); 按非递减顺序归并la和lb,得到新表lc

printf("lc=")输出链表lc的内容。

listtr**erse(lc,visit);

第二章综合练习

一 单项选择题。1.商品经济产生和存在的决定性条件是。a.社会分工b.机器的出现。c.生产资料和产品属于不同所有者 d.货币的使用。2.商品最本质的因素是。a.使用价值 b.交换价值 c.价值 d.3 具体劳动。a.反映社会生产关系b 是劳动的社会属性。c 反映人与自然的关系d 创造剩余价值。4.社...

第二章综合练习

1.使用visual c 的appwizard创建的文档视图结构的mfc应用程序框架是由应用程序。类 框架窗口 文档类和视图类的对象组成的。这四个类都是mfc基类的派生类。其中 应用程序类的基类必须是该类的缺省命名规则是例如,如果应用程序项目名为draw,则该项目的应用程序类被缺省命名为。框架窗口类...

第二章综合练习

1.填空题。1 设a为n阶方阵,b满足关系式 e 2 设a为n阶方阵,且am e 其中m为正整数。若将a的n2个元素用其代数余子式aij 代替,得到的矩阵记为b,则bm e 3 设a,b均为n阶矩阵,2 3 4 设矩阵a,b满足a ba 2ba 8e,其中,则b e 2e a 2.选择题。1 设三阶...