您的位置:

c语言结构代码,数据结构c语言完整代码

本文目录一览:

求c语言数据结构上机题代码(用数组来做)

#include stdio.h

#include"string.h"

#include stdlib.h

#define N 100000

#define M 10000

int fun(char a[])

{

int sum=0;

for(int i=0;istrlen(a);i++)

sum+=a[i];//字符数字化→ACSII码之和是单词标志之一;

return sum;

}

int main() {

/*_________________________________________________*/

  FILE *fp;

  char b[N + 1];

  //判断文件是否打开

  if ( (fp = fopen("D:\\英语论文.txt", "rt")) == NULL )/*这里D:\\ 英语论文.txt 是路径;读取D盘下,名为(英语论文)的文本文件*/

{

      puts("文件读取失败!\n");

      exit(0);

  }

  else

  {

  puts("文件读取成功");

  puts("开始计算");

}

  //循环读取文件的每一行数据

  while( fgets(b, N, fp) != NULL )

{

/*__________________________________________*/

int d[M]={0},x=0;

char a[111][11]={'\0'};

char t[11]={'\0'};

int k=0,j=0;

for(int i=0;istrlen(b);i++)

{

if((b[i]='a'b[i]='z')||(b[i]='A'b[i]='Z'))//不是空格就储存在二维数组中,一行一个单词;

a[k][j++]=b[i];

if(b[i]==' ')//遇到下一个空格就换行,进而开始下一个单词的储存;

{

k++;

j=0;

}

}

int max=fun(a[0]);

for(int i=0;i=k;i++)

{

d[fun(a[i])]++;//用每个单词的ASCII码之和桶排序,这也即是字典序;

if(fun(a[i])max)

max=fun(a[i]);//找出最大的作为上限;

}

int name;

for(int i=0;i=max;i++)

{

name=0;

for(int j=0;j=k;j++)

{

if(fun(a[j])==i)/*a[j]的ASCII码之和等于i,说明d[i]是记录单词a[j]的,d[i]的数就是a[j]出现的频率;*/

{

name=j;//记录单词下标;

}

}

if(d[i]!=0)//d[i]!=0即i是某个单词的ASCII码之和;

{

printf("%s %d\n",a[name],d[i]);//输出

}

}

/*___________________________________________*/   

  }

  //结束关闭文件

  fclose(fp);

  return 0;

}

这是修改过的,不过没太大变化,只是加了一个文件读取代码;

c语言数据结构这几行代码什么意思,可以分别解释一下么新手小白求教?

typedef struct { int i,j,int di; }Box; //定义一个自定义类型: 结构Box

typedef struct { Box data[MaxSize]; int top; }StackType; //定义结构类型,其中有Box数组

StackType st; //st具备StackType结构, 应该是堆栈

st.top++; //顶层加1,这里面应当先初始化st.top为栈底值,比如0

st.data[st.top].i=X; //相当于入栈操作,栈顶元素的i和j进行赋值

st.data[st.top].j=Y; 

st.data[st.top].di=-1;

求数据结构C语言版的编程代码?

// class.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "stdio.h"

#include "malloc.h"

struct Node

{

int data;

struct Node *next;

}*head;//建一个head的指针构造函数

void StoreData(int k)

{

int i;

struct Node *p,*p1;

p=(struct Node *)//取地址//malloc(sizeof(struct Node*));//在这的*号可要可不要

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

p-next=NULL;

head=p;p1=p;

for(i=1;ik;i++)

{

p=(struct Node *)//取地址//malloc(sizeof(struct Node*));//在这的*号可要可不要

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

p1-next=p;

p1=p;

}

}

void PrintData(int k)

{

struct Node *p=head;

int i;

for(i=1;i=k;i++)

{

printf("%d ",p-data);

if(p-next!=NULL)

p=p-next;

}

return;

}

int main(int argc, char* argv[])

{

StoreData(5);

PrintData(5);

return 0;

}

这是链表的输入输出,你试下不行再改