问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求数据结构(C语言版)题集实习题答案

发布网友 发布时间:2022-05-02 09:09

我来回答

3个回答

热心网友 时间:2023-10-15 06:00

哈夫曼编/译码器
#include <stdio.h>
#define MAX 1000
#define MAXSYMBS 30
#define MAXNODE 59

typedef struct
{
int weight;
int flag;
int parent;
int lchild;
}huffnode;

typedef struct
{
int bits[MAXSYMBS];
int start;
}huffcode;

main()
{
huffnode huff_node[MAXNODE];
huffnode huff_code[MAXSYMBS],cd;
int i,j,m1,m2,x1,x2,n,c,p;
char symbs[MAXSYMBS],symb;
clrscr();
printf("please input the leaf num of tree:\n");
scanf("%d",&n);
for (i=0;i<2*n-1;i++)
{
buff_node[i].weight=0;
buff_node[i].parent=0;
buff_node[i].flag=0;
buff_node[i].lchild=-1;
buff_node[i].rchild=-1;
}
printf("please input the weight of every leaf\n");
for (i=0;i<n;i++)
scanf("%d",&huff_node[i].weight);
for (i=0;i<n-1;i++)
{
n1=m2=MAX;
x1=x2=0;
for (j=0;j<n+i;j++)
{
if (huff_node[j].weight<m1&&huff_node[j].flag==0)
{
m2=m1;
x2=x1;
m1=huff_node[j].weight;
x1=j;
}
else if (huff_node[j].weight<m2&&huff_node

[j].flag==0)
m2=huff_node[j].weight;
x2=j;
}
}
huff_node[x1].parent=n+i;
huff_node[x2].parent=n+i;
huff_node[x1].flag=1;
huff_node[x2].flag=1;
buff_node[n+i].weight=buff_node[x1].weight+buff_node

[x2].weight
buff_node[n+i].lchild=x1;
buff_node[n+i].rchild=x2;
}
for (i=0;i<n;i++)
{
cd.start=n;
c=i;
p=huff_node[c].parent;
while(p!=0)
{
if (huff_node[p].lchild==c)
cd.bits[cd.start]=0;
else
cd.bits[cd.start]=1;
cd.start=cd.start-1;
c=p;
p=huff_node[p].parent;
}
cd.start++;
for (j=cd.start;j<=n;j++)
huff_code[i].bits[j]=cd.bits[j];
huff_code[i].start=cd.start;
}
puts("the hafman code are:");
for (i=0;i<n;i++)
{
for (j=huff_code[i].start;j<=n;j++)
printf("%10d,huff_code[i].bits[j]");
printf("\n");
}
puts("press any key to quit……");
getch();
}
约瑟夫环
#include<stdio.h>
typedef struct node
{int num;
struct node *next;
}linklist;
linklist *creat(head,n)
linklist *head;
int n;
{linklist *s,*p;
int i;
s=(linklist *)malloc(sizeof(linklist));
head=s;
s->num=1;
p=s;
for(i=2;i<=n;i++)
{s=(linklist *)malloc(sizeof(linklist));
s->num=i;
p->next=s;
p=s;
}
p->next=head;
return head;
}
linklist *select(head,m)
linklist *head;
int m;
{linklist *p,*q;
int i,t,n;
p=head;
t=1;
q=p;
do
{p=q->next;
t=t+1;
if(t%n==0)
{printf("%4d",p->num);
q->next=p->next;
free(p);
}
else q=p;
}while(q==p);
head=p;
return(head);
}
main()
{int n,m;
linklist *head;
printf("input the total number\n");
scanf("%d",&n);
printf("input the number to call:\n");
scanf("%d",&m);
creat(head,n);
select(head,m);
printf("the last one :is\n",head->num);
}

热心网友 时间:2023-10-15 06:00

我这个学期也有数据结构 我们刚做的实验~~~但是和你们做的不太一样 我这里有一个是约瑟夫环~~
#include<stdio.h>
#define FALSE 0
#define TRUE 1
struct node
{
int number;
int pass_m;
struct node *next;
}*head,*p1,*p2,*temp;
int main()
{
int m,i,n;
loop:printf("Input the number of students:");
scanf("%d",&n);
if(n<1)
{
printf("The \"n\" is wrong number:!Please input again!\n");
goto loop;
}
head=(struct node *)malloc(sizeof(struct node));
if(head==NULL)
return(FALSE);
loop1:printf("Input the 1th student's password: ");
scanf("%d",&head->pass_m);
if(head->pass_m<1)
{
printf("The \"password\" is wrong number:!Please input again!\n");
goto loop1;
}
head->number=1;
head->next=NULL;
p1=head;
for(i=1;i<n;i++)
{
p2=(struct node *)malloc(sizeof(struct node));
if(head==NULL)
return(FALSE);
loop2:printf("Input the %dth student's password: ",i+1);
scanf("%d",&p2->pass_m);
if(p2->pass_m<1)
{
printf("The \"password\" is wrong number:!Please input again!\n");
goto loop2;
}
p2->number=i+1;
p1->next=p2;
p2->next=NULL;
p1=p2;
}
p1->next=head;
p2=head;
p1=p2->next;

printf("Input the \"m\":");
scanf("%d",&m);
printf("The score is: ");
while(n>0)
{

if(m==2)
{
m=p1->pass_m;
printf("%d,",p1->number);
temp=p1;
p2->next=p1->next;
p2=p1->next;
p1=p2->next;
free(temp);
n--;
}
else if(m==1)
{
m=p2->pass_m;
printf("%d,",p2->number);
temp=p2;
p2=p1;
p1=p2->next;
free(temp);
n--;
}
else

{
while(m>2)
{
p2=p1;
p1=p1->next;
m--;
}
m=p1->pass_m;
p2->next=p1->next;
printf("%d,",p1->number);
temp=p1;
p2=p1->next;
p1=p2->next;
free(temp);
n--;
}
}
printf("\b.");
getch();
return(TRUE);
}

热心网友 时间:2023-10-15 06:01

#include <stdio.h>
#include <stdlib.h>
#define N 5
typedef struct
{ int num;
char name[10];
char tel[10];
}STYPE;
void check();

/**********found**********/
int fun(STYPE *std)
{
/**********found**********/
FILE *fp; int i;
if((fp=fopen("myfile5.dat","wb"))==NULL)
return(0);
printf("\nOutput data to file !\n");
for(i=0; i<N; i++)
/**********found**********/
fwrite(&std[i], sizeof(STYPE), 1, fp);
fclose(fp);
return (1);
}
main()
{ STYPE s[10]={ {1,"aaaaa","111111"},{2,"bbbbb","222222"},{3,"ccccc","333333"},
{4,"ddddd","444444"},{5,"eeeee","555555"}};
int k;
k=fun(s);
if (k==1)
{ printf("Succeed!"); check(); }
else
printf("Fail!");
}
void check()
{ FILE *fp; int i;
STYPE s[10];
if((fp=fopen("myfile5.dat","rb"))==NULL)
{ printf("Fail !!\n"); exit(0); }
printf("\nRead file and output to screen :\n");
printf("\n num name tel\n");
for(i=0; i<N; i++)
{ fread(&s[i],sizeof(STYPE),1, fp);
printf("%6d %s %s\n",s[i].num,s[i].name,s[i].tel);
}
fclose(fp);
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
现在五粮液000858可以买进么? 2021年五粮液(000858)总资产、总负债、营业收入、营业成本及净利润统... 手机耗电太快了怎么解决 教你方法,轻松解决 Tag模块数组indexOf,splice的使用方法 JavaScript indexOf简介 对于一个JS对象数组怎么使用IndexOf方法得到索引呢? Array.indexOf() 学习 狼来了是什么效应 当两种刺激都出现,认知者会产生首因效应还是近因效应呢? 大过年的…… 数据结构155页实验题2答案 数据结构 实验题~ (高手请进) 急求数据结构实验的答案 新学菜鸟请教“两道简单的数据结构实验题”,高手请进,在线等,急求证!~~ 数据结构实验答案 数据结构实验题 求数据结构(JAVA版)实验树和二叉树题目答案 C#,如何把修改后的数据存回数据库 数据结构实验题:线性表的基本操作在顺序存储结构和链接存储结构上的运算,以及对相应算法的性能分析。 华为mate xs 厦门专卖店有吗? 第二次劳动合同到期,企业有权利不续签吗 哪里可以买到华为最新Mate Xs手机,在华为实体店,华为商城,京东,天猫都是缺货是什么情况? 职场法律:第二次劳动合同到期未续签,员工继续工作满一年有好处 第二次续签劳动合同必须签无固定期限合同吗 已签订两次劳动合同,到期后未及时续签,企业需要承担什么责任呢?后续该怎么处理呢? 连续签订两次劳动合同,到期不续签可以要求经济补偿金2倍赔偿吗? 劳动合同第二次续签时间有没有规定 劳动合同签2次后不续签 同一个单位,连续签订两次合同,第二次合同到期,单位书面通知不续签,理由是合同到期,请问,单位违法吗 六十岁以上的农村老年人是不是都享有国家补助? 数据结构上机实验求答案 魔兽世界监狱的任务有哪些??请列出来~有地图的帮忙放下~ 监狱担负着什么样的任务? 跪求:监狱的基本任务 WOW 托尔巴拉德监狱一共有几个日常~跪求真正高手解答 监狱的宗旨和主要任务 监狱里都会做哪些劳动?任务重吗? 监狱里都会做哪些劳动?任务重吗?对此你怎么看? 谁知道银行贷款的利率多少 C#编程中如何改变DataTable里的某一条记录? 80岁大寿能不能过 80大寿生日哪天过好啊 是生日那天庆祝 还是提前还是拖后几天呢_百度问一问 老人80大寿必须生日那天过吗 老人过80大寿,是过80还是79? 请问80岁的生日按周岁算可以提前两年过吗? 老人80大寿什么时候过合适? 小孩肺炎咳嗽吃什么食物好 老人80岁生日要正常过还是提前过好? 80大寿是否提前过 老人过80大寿,是过80还是79 80大寿 可不可以提前几天?