三九宝宝网宝宝教育教学论文

数据结构c语言版严蔚敏的问题:两个有序线性表的交集合并成

02月23日 编辑 39baobao.com

[c语言数据结构中结构体定义问题]编译器逐行解析,在定义next之前,编译器已经知道struct student这个结构类型的存在,所以可以用它来定义next。 next是指向struct student结构的指针类型。一般像这种用法,都是用...+阅读

菜鸟路过。。。 #include#include#define OK 1 #define ERROR 0 typedef struct { int *elem; int length; int listsize; } SqList; int InitList_Sq(SqList *L,int len) { //构造一个空的线性表L,该线性表预定义大小为len L->elem=(int *)malloc(sizeof(int)*len); if(!L->elem) return ERROR; L->length=0; L->listsize=len; return OK; } int Load_Sq(SqList *L) { // 输出顺序表中的所有元素 int i; if(L->length==0) printf("The List is empty!"); else { for(i=0;ilength;i++) printf("%d ",L->elem[i]); } printf("\n"); return OK; } int Merg(SqList *LA,SqList *LB,SqList *LC) { int i,j,k; i=j=k=0; while(ilength&jlength) { if(LA->elem[i]elem[j]) { LC->elem[k]=LA->elem[i]; LC->length++; k++; i++; } else { LC->elem[k]=LB->elem[j]; LC->length++; k++; j++; } } while(ilength) { LC->elem[k]=LA->elem[i]; LC->length++; k++; i++; } while(jlength) { LC->elem[k]=LB->elem[j]; LC->length++; k++; j++; } return OK; } int Free_Sq(SqList *L) { free(L->elem); L->elem=NULL; return OK; } int main() { SqList *LA,*LB,*LC; int a_len,b_len,i; scanf("%d",&a_len); LA=(SqList*)malloc(sizeof(SqList)); LB=(SqList*)malloc(sizeof(SqList)); LC=(SqList*)malloc(sizeof(SqList)); InitList_Sq(LA,a_len); for(i=0;ielem[i]); LA->length++; } scanf("%d",&b_len); InitList_Sq(LB,b_len); for(i=0;ielem[i]); LB->length++; } InitList_Sq(LC,a_len+b_len); Merg(LA,LB,LC); printf("List A:"); Load_Sq(LA); printf("List B:"); Load_Sq(LB); printf("List C:"); Load_Sq(LC); Free_Sq(LA); Free_Sq(LB); Free_Sq(LC); free(LA); free(LB); free(LC); return 0; }

以下为关联文档:

数据结构线性链表的C语言程序实例这是单链表的创建,取元素,添加,删除和销毁等功能实例: #include#include#define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 typedef int Status; typedef int ElemT...

数据结构c语言描述链表的倒叙输出其实就是栈链,我写了个,你可以参考下 #include#includetypedef struct Node { int data; struct Node *next; }List; void Print(List *top)//打印 { List *p; p=top; while(p...

用c语言编写将两个升序的数组归并成一个新的升序数组//之前写过的,你可以参考下 #include <stdio.h> int main() { int str1[5]={3,6,7,45,55};//两个升序数组 int str2[5]={8,10,11,22,25}; int out[10];//输出数组 int i=0,j=0,...

如何用C语言编程将两个有序数组a b合并成一个数组c就以你的例子来写,可适当修改为更普遍的 算法核心代码为: int i = j = k = 0; //循环比较,将小的插入到C数组中 while ( i < 3 & j < 3) { if (a [i] < b [j]) c[k++] = a[i++]...

数据结构C语言顺序表的合并程序没什么大的毛病。。只是一些编写代码时的小疏忽 #include #include #define ok 1 #define error 0 #define LIST_INT_SIZE 10 #define elemtype int typedef struct{ el...

c语言数据结构赋值问题你是传值,不是传址。如下修改,能正确得到理想结果: #include<stdio.h> #include<stdlib.h> //void initstack(struct snode*); struct snode { int data[10]; int top; }; main...

C语言单向链表的问题上面这位老兄有点遗漏,我补充一下: 1、pr=p=(struct node*)malloc(sizeof(struct node)); 这行的pr指针为什么要再指向p呢,我想是想象我下面更改后的代码里if块里面要执行的第...

链表的问题 C语言#include <stdio.h&gt;/*供参考*/ #include <malloc.h> #include <string.h> #define NULL 0 #define LEN sizeof(struct linkman) struct linkman //联系人结构体 { char na...

关于严蔚敏C语言版数据结构的栈PUSH实现代码ElemType是否是笔误? 这个应该是笔误。。 另外对于追加那个,顺序栈是需要连续地址的内存,打个比方,比如原来栈的容量是从内存地址2000到2100这段空间,现在不够用了,需要增加100,也...

推荐阅读
图文推荐