当前位置:首页 » 编程语言 » c语言数据结构编程
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言数据结构编程

发布时间: 2022-12-15 12:48:50

㈠ 数据结构c语言版 编程

下面的这个程序不是很完整的,因为集合c没有删除ab中相同的数,还有下面的这个程序你要建在文件里才没有错误,建源文件时,要表明是.c文件,在运行时,你要注意输入的方式,如果你有问题再问好了
#include<stdio.h>
#include<stdlib.h>
#define
MAX
256
//typedef
int
List[MAX];
typedef
int
ElemType;
typedef
int
Status;
#define
OVERFLOW
-1
#define
OK
1
#define
LIST_INIT_SIZE
80
#define
LISTINCREMENT
10
typedef
struct
{
ElemType
*elem;
int
length;
int
listsize;
}
SqList;
typedef
SqList
List;
Status
InitList_Sq(
SqList*
L
)
{
(*L).elem
=
(ElemType*)
malloc
(LIST_INIT_SIZE*sizeof
(ElemType));
if
(!(*L).elem)
exit
(OVERFLOW);
(*L).length
=
0;
(*L).listsize
=
LIST_INIT_SIZE;
return
OK;
}
void
main()
{
int
ListLength(List
Lx);
void
GetElem(List
Lx,int
i,ElemType
*xi);
Status
InitList_Sq(
SqList*
L
);
void
ListInsert(List
*Lc,int
k,ElemType
e);
void
MergeList(List
La,List
Lb);
void
printElem(List
Lx);
List
La,Lb;
int
i;
InitList_Sq(&La
);
InitList_Sq(&Lb
);
printf("pls
input
length
of
La
,Lb\n");
scanf("%d,%d",&La.length,&Lb.length);
printf("intiating
La....\n");
for(i=1;i<=La.length;i++)
scanf("%d",&La.elem[i]);
printf("intiating
Lb....\n");
for(i=1;i<=Lb.length;i++)
scanf("%d",&Lb.elem[i]);
printf("values
of
La
are:\n");
printElem(La);
printf("values
of
Lb
are:\n");
printElem(Lb);
printf("starting
union...\n");
MergeList(La,Lb);
}
void
MergeList(List
La,List
Lb)
{
List
Lc;
int
i,j,k;
ElemType
ai,bj;
int
La_len=0,Lb_len=0;
i=j=1;k=0;
InitList_Sq(&Lc
);
La_len=ListLength(La);Lb_len=ListLength(Lb);
while((i<=La_len)&&(j<=Lb_len))
{
GetElem(La,i,&ai);
GetElem(Lb,j,&bj);
if(ai<=bj)
{ListInsert(&Lc,++k,ai);++i;}
else
{ListInsert(&Lc,++k,bj);++j;}
}
while(i<=La_len)
{
GetElem(La,i++,&ai);ListInsert(&Lc,++k,ai);
}
while(j<=Lb_len)
{
GetElem(Lb,j++,&bj);ListInsert(&Lc,++k,bj);
}
Lc.length=k;
printf("values
of
Lc
after
union:\n");
printElem(Lc);
}
void
printElem(List
Lx)
{
int
i;
for(i=1;i<=Lx.length;i++)
{
printf("%5d",Lx.elem[i]);
if(0==i%5)
printf("\n");
}
printf("\n");
}
void
GetElem(List
Lx,int
i,ElemType
*xi)
{
if(i>0
&&
i<=Lx.length)
*xi=Lx.elem[i];
//
printf("current
value
get:
%d\n",Lx[i]);
//
printf("current
value
get:
%d\n",xi[i]);
}
int
ListLength(List
Lx)
{
return
Lx.length;//
}
void
ListInsert(List
*Lc,int
k,ElemType
e)
{
(*Lc).elem[k]=e;
//printf("insert
success
to
e=%d\n",e);
}

㈡ c语言常见的数据结构有哪些

1、线性数据结构


元素之间一般存在元素之间存在一对一关系,是最常用的一类数据结构,典型的有:数组、栈、队列和线性表。


2、树形结构


结点间具有层次关系,每一层的一个结点能且只能和上一层的一个结点相关,但同时可以和下一层的多个结点相关,称为“一对多”关系,常见类型有:树、堆。


3、图形结构


在图形结构中,允许多个结点之间相关,称为“多对多”关系。


(1)线性数据结构:元素之间一般存在元素之间存在一对一关系,是最常用的一类数据结构,典型的有:数组、栈、队列和线性表


(2)树形结构:结点间具有层次关系,每一层的一个结点能且只能和上一层的一个结点相关,但同时可以和下一层的多个结点相关,称为“一对多”关系,常见类型有:树、堆


(3)图形结构:在图形结构中,允许多个结点之间相关,称为“多对多”关系

㈢ 数据结构C语言编程

#include"stdio.h"
#include<stdlib.h>
#include"time.h"
intmain(intargv,char*argc[]){
doublex[10]={0.0,};
inti;
srand((unsigned)time(NULL));
while(rand()%10000!=0){//
for(i=0;i<9;x[i++]=x[i+1]);
x[9]=rand()/32767.0*100000;//模拟采集数据
}
for(i=0;i<10;printf("%10.3f ",x[i++]));//输出最后10个数
return0;
}

运行样例:

㈣ C语言数据结构编程

#include<stdio.h>
#include<stdlib.h>
#include"string.h"

intmain(intargc,char*argv[])
{
char*buffer=(char*)malloc(sizeof(char)*100);
char*b=(char*)malloc(sizeof(char)*100);
memset(buffer,'',100);
memset(b,'',100);
chars1[10]={""};
chars2[10]={""};
chars3[10]={""};
inti1,i2,i3,i,j=0;
intlen=strlen(gets(buffer));
for(i=0;i<len;i++)
{
if(buffer[i]!='')
{
b[j]=buffer[i];
j++;
}
}
len=strlen(b);
i1=0;i2=0;i3=0;
for(i=0;i<len/3;i++)
{
switch(b[i*3])
{
case'1':
s1[i1++]=b[i*3];
s1[i1++]=b[i*3+1];
s1[i1++]=b[i*3+2];

break;
case'2':
s2[i2++]=b[i*3];
s2[i2++]=b[i*3+1];
s2[i2++]=b[i*3+2];

break;
case'3':
s3[i3++]=b[i*3];
s3[i3++]=b[i*3+1];
s3[i3++]=b[i*3+2];

break;
}
}
printf(" ");
intn=strlen(s3);
for(i=n-3;i>=0;i-=3)
{
printf("%c%c%c",s3[i],s3[i+1],s3[i+2]);
}
n=strlen(s2);
for(i=n-3;i>=0;i-=3)
{
printf("%c%c%c",s2[i],s2[i+1],s2[i+2]);
}
n=strlen(s1);
for(i=n-3;i>=0;i-=3)
{
printf("%c%c%c",s1[i],s1[i+1],s1[i+2]);
}
return0;
}

㈤ 数据结构 c语言编程

你的 crt_linklist函数有问题,应为在你的主函数中,你在调用 crt_linklist函数时,实际上进行的的是值传递!你后来的初始化函数init_linklist以及创建链表函数crt_linklist对p都没有什么影响!这两个函数所做的工作就只是对自己的形参处理了而已,当函数调用结束时,一切又消失了,实参p还是原来的样子。你可以考虑在主函数中这样修改就可以了:

int main()
{
lnode l;
elemtype i=30;
crt_linklist(&l,i);
output_linklist(&l);
return 0;
}

这种问题自己必须想明白,我们当初学习时也经常碰到这种问题,但只要你好好想想,这些问题就都能想明白的,你可以不断实践加深自己的理解!

㈥ 数据结构C语言程序设计编程题,请问这个程序怎么编

#include<stdio.h>
#include<stdlib.h>
typedef struct List
{
int data;
struct List *next;
}list;

int main()
{
list *L = (list*)calloc(1, sizeof(list)); //头结点
L->next = NULL;
int n, k, i;
scanf("%d%d", &n, &k);

list *s, *q = L;
for (i=0; i<n; ++i) //赋初值
{
s = (list*)calloc(1, sizeof(list));
s->data = i+1;
s->next = NULL;
q->next = s;
q = s;
}

q->next = L->next; //让尾结点指向头结点的下一个,即第一个人的位置,单向循环链表创建完成
q = L->next; //让q指向头结点的下一个

while (q->next != q) //只剩一个元素时,退出循环
{
for (i=1; i<k-1; ++i)
{q = q->next;} //q指向删除节点的前一个
s = q->next; //s指向删除节点
q->next = s->next; //将去除s后的链表重新连接起来
q = q->next; //让q指向下次循环的起始位置
//printf("%d ", s->data);
free(s);
s = NULL;
}

printf ("%d\n", q->data);
free(q);
q = NULL;
free(L);
L = NULL;
return 0;
}

㈦ C语言实现常用数据结构(一)

实现了链表,栈、哈希表等
哈希表由数组加链表实现。通过计算key的哈希值,将哈希值转成int类型并与数组长度进行与运算得到数组下标,数组每个元素都是一个链表,默认为NULL。
通过InitHashTable函数得到初始化的哈希表。已实现功能有:添加键值、删除键值、根据键获取值,清理所有键值对、回收哈希表,可以根据例子遍历键值。
Key可以扩展为任何类型,但需要实现相应类型HashCode的算法,此处只支持字符串类型。

C语言实现常用数据结构二
项目地址

md5.h

md5.c

m_hashtable.h

m_hashtable.c

测试使用

㈧ C语言编程(数据结构)

int*getnum(inta)
{
staticintn[10];
inti=a;
for(i=1;i<=a;i++)
{
intk=i;
while(i>0)
{
n[i%10]++;
i/=10;
}
i=k;
}
returnn;
}
intmain()
{
int*m=getnum(11);
inti;
for(i=0;i<10;i++)
{
printf("%d",m[i]);
}
getch();
return0;
}