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

c语言数据结构

发布时间: 2022-01-24 21:30:30

A. 数据结构(c语言

#define maxsize 100 //链表最大长度
typedef struct{
ElemType data;
int cur;
}component,SLinkeList[maxsize]
这中描述方法便于在不设“指针”类型的高级程序设计语言中使用链表结构。在如上的描述的链表中,数组的一个分量表示一个结点,同时用游标(指示器cur)代替指针指示结点在数组中的相对位置。数组第零分量可以看成头结点,其指针域指示链表的第一个结点。这种存储结构仍需要预先分配一个较大的空间,但在作线性表的插入和删除操作时不需要移动元素,仅需修改指针,故仍具有链式存储结构的主要特点。
void InitSpace_SL(SLinkeList &space)
//InitSpace_SL( )为创建链表函数
{
//将一维数组space中的各分量链成一个备用链表,space[0].cur为头指针
//"0"表示空指针
for(i=0;i<maxsize-1;++i)
space[i].cur=i+1;
space[maxsize-1].cur=0;
}

B. c语言的数据结构

你真有意思,什么叫C语言的数据结构?数据结构是所有语言所共有的好吧!就像你说话想表达一个意思一样,你可以用汉语说,也可以用日语说,还可以用英语说。

简单的说,数据结构分两个部分:
存储表示和抽象表示。存储表示就是元素在内存中的真实物理表示。抽象表示就是忽略元素的存储表示,只研究它的抽象属性。比如说表,抽象意义上,就是表;存储上来说,分成顺序表,也就是数组,和链表。

C. c语言数据结构

#include <stdlib.h>
#include <iostream>

#define OK 1
#define MVNum 100

typedef int Status;
typedef char VerTexType;
typedef int ArcType;
struct closedgestruct
{
VerTexType adjvex; //最小边的顶点ArcType
ArcType lowcost; //最小边的权值
}closedge[MVNum];

Status Min()
{
int x,N,min=closedge[1].lowcost;
for(x=1;x<=MVNum;x++)
{
if(min>closedge[x].lowcost)
min=closedge[x].lowcost;//找closedge数组中权值最小的那组
N=x;//N保存权值最小的那组的下标
}
std::cout<<N;//输出最小权值对应的那组数组的下标
return OK;
}

D. 数据结构和C语言有什么区别

数据结构是数据及数据之间的关系,C语言只是一门编程语言,可以用C语言来写程序,实现数据按照某种特定的关系来组织和管理数据(也就是实现数据结构),所以数据结构的课程会有不同的语言版本,其实就是用不同的语言来实现数据结构了。呵呵,不知道你明白没有呢~~

E. c语言的数据结构是什么

根据你的问题,我想一种计算机语言的数据结构,是指这种语言系统所提供的,在程序中存储数据可以使用的基本数据组织形式。C语言的基本数据结构除了各种数据类型的简单变量外,主要的就是数组、结构、联合。

F. C语言编写 数据结构

#include<stdio.h>
#include<stdlib.h>
typedefstructintnumber
{
intn;
structintnumber*next;
}INTNUM;
INTNUM*creat(intnum)/*建立链表*/
{
INTNUM*p1,*p2,*head;
inti;
p1=(INTNUM*)malloc(sizeof(INTNUM));
head=p1;
p2=p1;
for(i=0;i<num-1;i++)
{
p1=(INTNUM*)malloc(sizeof(INTNUM));
p2->next=p1;
p2=p1;
}
p1->next=NULL;
returnhead;
}
voidinput(INTNUM*head)/*输入链表数据*/
{
INTNUM*p;
p=head;
while(p->next!=NULL)
{
scanf("%d",&(p->n));
p=p->next;
}
scanf("%d",&(p->n));
}
voidoutput(INTNUM*head)/*输出链表数据*/
{
INTNUM*p;
p=head;
while(p->next!=NULL)
{
printf("%d/t",p->n);
p=p->next;
}
printf("%d/n",p->n);
}

voidmain(void)
{
INTNUM*pa,*pb,*pc,*heada,*headb,*headc;/*pc是指向新链表的指针*/
intcounta,countb;/*counta,countb是建立链表的结点数*/
printf("请输入建立A链表的结点数:");
scanf("%d",&counta);
pa=creat(counta);
heada=pa;
printf("请按递增输入A链表结点上的数据:");
input(heada);
printf("打印A链表结点上的数据:/n");
output(heada);
printf("请输入建立B链表的结点数:");
scanf("%d",&countb);
pb=creat(countb);
headb=pb;
printf("请按递增输入B链表结点上的数据:");
input(headb);
printf("打印B链表结点上的数据:/n");
output(headb);
printf("将链表A和链表B仍然按照递增关系合并成一个新的链表C:");
headc=heada;
pc=pa;
pa=pa->next;
while(pa&&pb)
{
if(pa->n<=pb->n)
{
pc->next=pa;
pc=pc->next;
pa=pa->next;
}
else
{
pc->next=pb;
pc=pc->next;
pb=pb->next;
}
}
pc->next=pa?pa:pb;
printf("打印合并后链表结点上的数据:/n");
output(headc);
}
结果如下:
请输入建立A链表的结点数:3
请按递增输入A链表结点上的数据:12030
打印A链表结点上的数据:
12030
请输入建立B链表的结点数:5
请按递增输入B链表结点上的数据:218222632
打印B链表结点上的数据:
218222632
将链表A和链表B仍然按照递增关系合并成一个新的链表C:打印合并后链表结点上的数据:
12182022263032

G. C语言的数据结构是什么

数据结构,data
strucure
是具有特定关系的数据元素的集合。它包含两方面的信息:D+S
D
即数据元素的集合,也就是数据对象;S
数据元素间的关系,而这种关系指的是数据元素之间本身的关系
也叫做逻辑结构!而这种逻辑结构需要通过一种高级语言
比如c语言才能使得将这种逻辑结构在计算机中表现出来
也就是通过高级语言存储结构。

H. c语言 数据结构(面向c语言)

只看书确实不行,要动手去做,人都有惰性,但要想成为强者你就要付出,当你战胜你的惰性并自己动手做一些小程序时,你收获的不仅仅是编写出这些程序的成就感,更有成功的喜悦。我原来也是这样不想去手去做,但老师布置的做作业都非常有针对性,一定要静下心来去完成,可能刚开始做着很难或很慢,但坚持下去,相信你可以办到的,学编程语言归根结底还是学语言,就像你学英语等外国语言一样,学语言就要多动口手,平时多积累,也许积累的过程很痛苦,但等有一天你回首就会发现你学到了很多。总而言之:坚持+动手=学会编程。
至于学习编程的论坛网站,给你一些个人觉得可以的:CSDN 编程论坛 编程爱好者论坛 VC知识库等都不错,你可以注册一个号,平时有什么问题直接上去问就行了,多学多动手,坚持下去,多问。
祝成功。。。。。。。。。

I. C语言 数据结构

第一处:s->next=q->next;改为
s->next = p;
因前一句为q->next=s;
连起来相当于s->next = s;
这样的链表是有一个环的,插入后再遍历会导致死循环。
或者可以这样把两句倒过来写:
s->next=q->next;
q->next=s;
两种选一个。
第二处:
free(p);
插入一个节点无需free任何东西,因原有所有节点都需要保留。