请C语言高手帮我编写几个数据结构的小程序~(一定要用C++编写噢~)谢啦~

作者&投稿:单于刮 (若有异议请与网页底部的电邮联系)
请C语言高手帮我编写几个小程序~(一定要用C++编写噢~)~

第一个
void reverse_merge(List &A,List &B,List &C){
InitList(C);
i=j=1; k=0;
la_len=ListLength(A);
lb_len=ListLength(B);
while((i<=la_len)&&(j<=lb_len)){
GetElem(A,i,ai);
GetElem(B,i,bi);
if(ai<=bj){
ListInsert(C,++k,ai); ++i;}
else ListInsert(C,++k,bj); ++j;}
}
while(i<=la_len){
GetElem(A,i++,ai); ListInsert(C,++k,ai);}
while(j<=lb_len){
GetElem(B,j++,bj); ListInsert(C,++k,bj);}
}
第二个的话可以参考http://hi.baidu.com/mianchuang/blog/item/6632a4b383c64959082302b5.html

#include"stdio.h"
#include<malloc.h>

typedef char ElemType;

typedef struct LNode
{ElemType data; struct LNode *next; }LinkList;

void CreatListF(LinkList *&L,ElemType a[],int n) //头插法建表
{
LinkList *s;int i;
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL;
for(i=0;i<n;i++)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=a[i];
s->next=L->next;
L->next=s;
}
}

void CreateListR(LinkList *&L,ElemType a[],int n)
//尾插法建表
{
LinkList *s,*r;int i;
L=(LinkList *)malloc(sizeof(LinkList));
r=L;
for(i=0;i<n;i++)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}

void InitList(LinkList *&L)
//初始化线性表
{
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL;
}

void DestroyList(LinkList *&L)
//销毁线性表
{
LinkList *p=L,*q=p->next;
while(q!=NULL)
{
free(p);
p=q;
q=p->next;
}
free(p);
}

int ListEmpty(LinkList *L)
//判断线性表是否为空
{
return(L->next==NULL);
}

int ListLength(LinkList *L)
//求线性表的长度
{
LinkList *p=L;int n=0;
while(p->next!=NULL)
{
n++;p=p->next;
}
return(n);
}

void DispList(LinkList *L)
//输出线性表
{
LinkList *p=L->next;
while(p!=NULL)
{
printf("%c",p->data);
p=p->next;
}
}

int GetElem(LinkList *L,int i,ElemType &e)
//求线性表中某个数据元素值
{
int j=0;
LinkList *p=L;
while(j<i&&p!=NULL)
{
j++;p=p->next;
}
if(p==NULL)
return 0;
else
{
e=p->data;return 1;
}
}

int LocateElem(LinkList *L,ElemType e)
//按元素值查找
{
LinkList *p=L->next;
int i=1;
while(p!=NULL&&p->data!=e)
{
p=p->next;i++;
}
if(p==NULL)return(0);
else return(i);
}

int ListInsert(LinkList *&L,int i,ElemType e)
//插入数据元素
{
int j=0;
LinkList *p=L,*s;
while(j<i-1&&p!=NULL)
{
j++;p=p->next;
}
if(p==NULL)return 0;
else
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=e; s->next=p->next; p->next=s;
return 1;
}
}

int ListDelete(LinkList *&L,int i,ElemType &e) //删除数据元素
{
int j=0;
LinkList *p=L,*q;
while(j<i-1&&p!=NULL)
{
j++;p=p->next;
}
if(p==NULL)
return 0;
else
{
q=p->next;
if(q==NULL)return 0;
e=q->data;
p->next=q->next;
free(q);
return 1;
}
}

int main()
{
ElemType e,a[5]={'a','b','c','d','e'};
LinkList *h;

InitList(h);





//初始化顺序表h
CreateListR(h,&a[0],5);



//依次采用尾插入法插入a,b,c,d,e元素
printf("单链表为:");
DispList(h); printf("\
");


//输出顺序表h

printf("该单链表的长度为:");
printf("%d",ListLength(h)); printf("\
");
//输出顺序表h的长度
if(ListEmpty(h)) printf("该单链表为空。\
");

else printf("该单链表不为空。\
");

//判断顺序表h是否为空

GetElem(h,3,e);printf("该单链表的第3个元素为:");
printf("%c",e); printf("\
");


//输出顺序表h的第3个元素
printf("该单链表中a的位置为:");
printf("%d",LocateElem(h,'a')); printf("\
"); //输出元素'a'的位置

ListInsert(h,4,'f');




//在第4个元素位置插入'f'素
printf("在第4 个元素位置上插入'f'后单链表为:");
DispList(h); printf("\
");


//输出顺序表h

ListDelete(h,3,e);




//删除L的第3个元素
printf("删除第3个元素后单链表为:");
DispList(h); printf("\
");


//输出顺序表h

DestroyList(h);





//释放顺序表h
return 0;
}

#include"stdio.h"
#include"malloc.h"
#define MaxSize 10
typedef char ElemType ;
typedef struct
{
ElemType data[MaxSize]; int front,rear;
}SqQueue;

void InitQueue(SqQueue *&q) //初始化队列
{
q=(SqQueue *)malloc(sizeof(SqQueue));
q->front=q->rear=0;
}

void ClearQueue(SqQueue *&q) //销毁队列
{ free(q); }

int QueueEmpty(SqQueue *q) //判断队列是否为空
{ return(q->front==q->rear); }

int enQueue(SqQueue *&q,ElemType e) //入队列
{
if((q->rear+1)%MaxSize==q->front) return 0;
q->rear=(q->rear+1)%MaxSize;
q->data[q->rear]=e; return 1;
}

int deQueue(SqQueue *&q,ElemType &e) //出队列
{
if(q->front==q->rear) return 0;
q->front=(q->front+1)%MaxSize;
e=q->data[q->front]; return 1;
}

void numQueue(SqQueue *q) //输出队列元素个数
{
if(q->rear>=q->front)
printf("这个队列的元素个数为:%d\n",q->rear-q->front);
else
printf("这个队列的元素个数为:%d\n",MaxSize-q->front+q->rear);
}

void DispQueue(SqQueue *q) //输出队列
{
int i=0,f=q->front+1;
while((f+MaxSize)%MaxSize!=q->rear)
{
printf("%c\t",q->data[f]);
f++; i++;
if(i%5==0)printf("\n");
}
printf("%c\n",q->data[f]);

}

void main()
{
SqQueue *q;
ElemType e;
InitQueue(q);
if(QueueEmpty(q))printf("这个队列是空的!\n");
else printf("这个队列不是空的!\n");
enQueue(q,'a'); enQueue(q,'b'); enQueue(q,'c');
if(deQueue(q,e)==1)
printf("出对元素为:%c\n此时",e);
numQueue(q);
enQueue(q,'d'); enQueue(q,'e'); enQueue(q,'f');
printf("def进队列后,");
numQueue(q);
printf("它的元素有:\n");
DispQueue(q);
ClearQueue(q);
}

这是我以前的作业,你自己组织下,应该可以解决你的问题


跪求C语言编程高手帮忙编个小程序,大一年级的
} tot=a+b+c+d+e;printf("字符串中共有:%d字符\\n大写字母:%d个\\n小写字母:%d个\\n数字:%d个\\n空格:%d个\\n其他字符:%d\\n",tot,a,b,c,d,e);for(i=0;i<tot-1;i++){ iPos = i;for(j=i+1;j<tot;j++)if(ch[j]<ch[iPos])iPos=j;iTemp = ch[i];ch[i] = ch[...

请C语言高手帮我编写几个数据结构的小程序~(一定要用C++编写噢~)
include"stdio.h"include<malloc.h> typedef char ElemType;typedef struct LNode {ElemType data; struct LNode *next; }LinkList;void CreatListF(LinkList *&L,ElemType a[],int n) \/\/头插法建表 { LinkList *s;int i;L=(LinkList *)malloc(sizeof(LinkList));L->next=NULL;for(i...

C语言高手帮帮忙!!! 编写并调试通过下面2个程序:
1、任意输入10个同学的计算机课的成绩,按降序排列输出(用数组来完成)。include "stdio.h"int main(){ int i,j,tmp,a[10];for (i=0;i<10;i++){ scanf("%d",&a[i]);} for (i=0;i<10-1;i++){ for (j=0;j<10-i-1;j++){ if (a[j]<a[j+1]){ tmp=a[j];a[j...

高手用C帮我编写几个程序,我学习参考。~!!
define N 10 int b(char c[N]){

用C语言写一段程序,高手快来哦!
int get_min_id(int * x, int range){ int i = 0, j = 0, m = 99999999L;for(i = 0; i < range; i++) { if (x[i] < m) { m = x[i];j = i;} } return j;} void sort(int x[RANGE]){ int i = 0, j = 0, r = 0, t = 0; int * y = 0;for(i...

请高手编一个c语言
include <string.h> define ID struct id struct id { char name[20];char tele[20];ID *next;};int pc=0;ID *creat(){ ID *p1,*p2,*head;char str[20];p1=p2=head=NULL;printf("\\t\\t\\t 开始输入记录(姓名 # 结束)!\\n");while(1){ printf("请输入姓名:\\n");scanf("%s"...

C语言高手来一下帮我编个小程序
首先,我可以用字符串来做。我现在先把代码贴上:include <stdio.h> int main(){ char *str , *ch , *c[] = {"个位为:" , "十位为:" , "百位为:" , "千位为:" , "万位为:"};scanf("%s",str);int i = 0 ;\/\/要求1.求出它是几位数 printf("此数为%d位数\\n",(size...

高手们,帮我编几个c语言的小程序!!谢谢.明天就要交!!
编一C程序,它能读入两个整数m与n,计算并输出m与n的绝对值的最大公约数及最小公倍数 解:源程序如下:int gys (int x,int y){ int j;j=(x<y)?x:y;for(;j>0;j--)if(x%j==0&&y%j==0)break;else continue;return (j);} int gbs (int z,int w){ int i;i=(z>w)?z:...

求助,c语言高手进来帮忙编程
第2题没能按要求能输入考生人数,在函数中修改N值吧,我用的C++编译器,如要调试请注意用C++ 第二题你是不是新建为:名字.c源文件啊,新建为:名字.cpp就能运行了 因为我是用C++编译的...--- 楼主能说清楚哪个题运行不了吗,我这儿都能运行啊,你看看运行结果吧,附上截图了......

c语言编程题,请高手帮忙做一下,拜谢,急急急急……
1.include <stdio.h> double funcPi(int);int main(void){ int arg;printf("Input the argument: ");\/\/ \/\/ 无异常输入 \/\/ while (!scanf("%d", &arg)){ printf("Check your input and retry: ");while (getchar()!='\\n'){ continue;} } while (getchar()!='\\n'){ continue...

新巴尔虎左旗15873452987: 请C语言高手帮我编写几个数据结构的小程序~(一定要用C++编写噢~) -
盖怜舒威: #include"stdio.h"#include<malloc.h> typedef char ElemType; typedef struct LNode {ElemType data; struct LNode *next; }LinkList; void CreatListF(LinkList *&L,ElemType a[],int n) //头插法建表 { LinkList *s;int i; L=(LinkList *)malloc(sizeof(LinkList));...

新巴尔虎左旗15873452987: 求高手用c语言编写两个程序(数据结构) -
盖怜舒威: #include"stdio.h" typedef struct la { int *data; int l; }La; typedef struct lb { int *data; int l; }Lb; typedef struct lc { int *data; int l; }Lc; void chushihua(La &a,Lb &b,Lc &c) { int i=0; a.data=new int[100];a.l=0; b.data=new int[100];b.l=0; c.data=new int[100];...

新巴尔虎左旗15873452987: 请教高手写一个C语言程序关于数据结构的
盖怜舒威: hehe #include<stdio.h> #include<malloc.h> #include<string.h> #define NULL 0 typedef struct tnode { char data; struct tnode *lchild; struct tnode *rchild; struct tnode *parent; }BTNode; void main() { BTNode *St[10],*p=NULL,*bt=NULL; int top=-1,k,j=0,...

新巴尔虎左旗15873452987: 各位高手谁给我写一个数据结构(C语言版)源代码的主函数,子函数我自己加,或者写一个子函数举个例子! -
盖怜舒威: { double x,y,a,b; printf("请输入第一个复数的实部和虚部:"); scanf("%lf,%lf",&x,&y); printf("请输入第二个复数的实部和虚部:");

新巴尔虎左旗15873452987: 急求C语言程序!!!!!!! 数据结构的作业 求能人帮忙啊
盖怜舒威: #include<stdio.h> #define size 100 /* 输入人数的上限 */ void main() { int person[size]; int i, j; /* 循环修正变量 */ int arrayLen; /* 数组长度 */ int start, overNum; /* 开始位置各跨过位置 */ int deleNum; /* 出列人所在数组中的下标 */ int name, total...

新巴尔虎左旗15873452987: 急!帮我编写一个c语言的数据结构程序,关于串,提供要用的代码,只要帮我实现界面上的样子
盖怜舒威: <p>//str.c</p> <p>#include"stdio.h"</p> <p>#include"str.h"</p> <p>void main()</p> <p>{</p> <p> int n,flag=0;</p> <p> int i=4,j=6;</p> <p> char *str,*sub;</p> <p> str=(char*)malloc(sizeof(char)*100);</p> <p> sub=(char*)malloc(sizeof(char)*...

新巴尔虎左旗15873452987: 求C语言高手帮忙做个程序~~是有关数据结构的!
盖怜舒威: 1. ->是访问指针类型的对象的成员, .是访问对象的成员 2.

新巴尔虎左旗15873452987: C语言编写 数据结构 -
盖怜舒威: #include typedef struct intnumber { int n; struct intnumber *next; }INTNUM; INTNUM *creat(int num)/*建立链表*/ { INTNUM *p1,*p2,*head; int i; p1 = (INTNUM *)malloc(sizeof(INTNUM)); head = p1; p2 = p1; for(i = 0;i{ p1 = (INTNUM *)malloc(sizeof(...

新巴尔虎左旗15873452987: 熟悉C语言版本的数据结构高手请进,请教几个简单算法. -
盖怜舒威: 第一题,用栈后进先出的特点,将所有元素一次输入一个栈中然后依次输出并且用一个顺序表存储,这里我采用栈的链式存储结构 void fnReverse( SeqList &List ); {int i,e; sqlist*L sqstack*p; s=(sqstack*)malloc(sizeof(sqstack)); /*初始化一个栈*/ ...

新巴尔虎左旗15873452987: C语言高手进来帮忙(数据结构 - 图的遍历)
盖怜舒威: #include "stdlib.h" #include "stdio.h" #define N 6 #define e 11 typedef int vextype; typedef struct node {int adjvex; /*邻接点域*/struct node *next; /*链域*/ }edgenode; /*边表结点*/typedef struct {vextype vertex; /*顶点信息*/edgenode *...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网