当前位置:首页 » 编程语言 » 数据结构C语言版

数据结构C语言版

发布时间: 2022-01-14 20:52:17

❶ 数据结构c语言版和C++版有什么区别吗

  1. 数据结构是抽象的,和具体语言无关。无论是C语还是C++,或者是java,他们都能实现同一种的数据结构。最多的区别就是有些的程序语言在实现某种数据结构时更为便利。

    例如lisp语言,天生就是链表这种数据结构。

    非要找C和C++的有什么区别,那就是C++可用容器、面向对象的思想(类的继承等)。实现的方式方法比用C来更多。

  2. 数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。数据结构是数据存在的形式。 数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。


❷ 数据结构(c语言版)和数据结构区别

C语言是一种编程的语言,编程的语言有很多种。
而数据结构则是讲的是关于一些数据的理论知识。
可以说不管什么编程语言都能用到数据结构的知识,数据结构是程序设计基础又核心的知识。
可以将c语言想象为一种语言,那么数据结构就是一种说话的技巧,如何让你说话更简洁,有逻辑,容易让人听懂,这表达技巧不管你用中文或者ENGLISH都可以用上。
当然,如果你想成为一个优秀的程序设计人员,数据结构是必须掌握好的

❸ 《数据结构(C语言版)》

你是说清华大学的教材吗?严蔚敏和吴伟民编着的那本?
这本书的话作为教材整体还不错,但是如果自学的话就比较枯燥了。

其实国内有很多新出的数据结构都不错,不管是用C++还是JAVA,还是C,或者其他语言描述的,感觉很多都比这本要好。
学习数据结构的话,我推荐看《数据结构与算法分析 : C语言描述》这本书,个人认为比清华大学的这本讲述的要好一些~当然仅仅是个人立场,给个建议。

❹ 数据结构(C语言版)怎么学啊!

数据结构这门课,主要讲了2个问题:第一个就是在程序中如何组织数据,第二个就是常用算法。
总之,这门课的意义在于讲解了编程时的思想,这些思想是跨越语言的。

学习这门课,没什么捷径,就是读代码,然后用你会的任何一种编程语言实现它。当把书中的代码读懂80%的时候,你就会发现你的编程水平有很大的提高。

❺ 数据结构c语言版

#include "stdio.h"
typedef char datatype;
typedef struct node{

datatype data;

struct node *next;
} stack;
stack * creat(void)
{
char ch;
stack * head;
stack *p;
head=NULL;/*初始化为空*/
ch=getchar( );
while (ch!='\n'){
p=(stack*)malloc(sizeof(stack));/*分配空间*/
p->data=ch;/*数据域赋值*/
p->next=head;/*指定后继指针*/
head=p;/*head指针指定到新插入的结点上*/
ch=getchar( );
}
return (head);
}

void MakeNull(stack *s)/*使栈s为空*/
{
stack *p=s;
while(s!=NULL){
s=s->next;
free(p);/*释放空间*/
p=s;
}
}

datatype Top(stack *s)
{
if(Empty(s))/*s为空栈,直接跳出,提示出错信息*/
printf("The stack is empty.");
else
return s->data;
}

void Pop(stack *s)
{
stack *p;
if(Empty(s)) /*s为空栈,直接跳出,提示出错信息*/
printf("The stack is empty.");
else{
p=s;
s=s->next;
free(p);/*释放栈顶空间*/
}
}

void Push(stack *s,datatype x)
{

stack *p;
p=(stack*)malloc(sizeof(stack));
p->data=x;
p->next=s;
s=p;
}

int Empty(stack *s)
{
return(s==NULL);
}

void main()
{
stack* m_stack=creat();
char m_top;
if(!Empty(m_stack))
{
m_top=Top(m_stack);
Pop(m_stack);
}
else
Push(m_stack,'a');
MakeNull(m_stack);
}

❻ 数据结构c语言版严蔚敏版

voiddelete_L(LNode*L,inta,intb)
{
LNode*p,*q;
p=L;
q=p;
p=p->next;
if(p==NULL)
printf("链表为空");
while(p!=NULL)
{

if((p->data>a)&&(p->data<b))
{q->next=p->next;
free(p);
p=q->next;

}
else
{q=p;
p=p->next;
}
}
}

❼ 数据结构 c语言版(严尉敏)

我看了一下,好像没有代码,全称是:
《数据结构(C语言版)》配书光盘 DSDemo

数据结构算法演示(Windows版)
使 用 手 册

一、 功能简介
本课件是一个动态演示数据结构算法执行过程的辅助教学软件, 它可适应读者对算法的输入数据和过程执行的控制方式的不同需求, 在计算机的屏幕上显示算法执行过程中数据的逻辑结构或存储结构的变化状况或递归算法执行过程中栈的变化状况。整个系统使用菜单驱动方式, 每个菜单包括若干菜单项。每个菜单项对应一个动作或一个子菜单。系统一直处于选择菜单项或执行动作状态, 直到选择了退出动作为止。

二、 系统内容
本系统内含84个算法,分属13部分内容,由主菜单显示,与《数据结构》教科书中自第2章至第11章中相对应。各部分演示算法如下:
1. 顺序表
(1)在顺序表中插入一个数据元素(ins_sqlist)
(2)删除顺序表中一个数据元素(del_sqlist)
(3)合并两个有序顺序表(merge_sqlist)
2. 链表
(1)创建一个单链表(Crt_LinkList)
(2)在单链表中插入一个结点(Ins_LinkList)
(3)删除单链表中的一个结点(Del_LinkList)
(4)两个有序链表求并(Union)
(5)归并两个有序链表(MergeList_L)
(6)两个有序链表求交(ListIntersection_L)
(7)两个有序链表求差(SubList_L)

================================================

我有,留下email,最好是Gmail

盘中内容

\DSDemoW 数据结构算法演示系统(Windows版)β测试版
\DSDemoC 数据结构算法演示系统(C语言描述)V3.1C中文版
Readme.txt 光盘使用说明

对不对?

❽ 数据结构(C语言版)

1.类型定义有问题,将LinkList定义的都改为LNode *吧!
2.有一处else写为elst了

帮你改了一下,正在是修改后的程序:
可以编译通过,但不知道逻辑是否正确,自己检查一下哈!
#include <stdio.h>
#include <malloc.h>
typedef char ElemType;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
int ListInsert_L(LNode *head,int i,char e)
{
LNode *p=head;
LNode *s;
int j;
p=p->next;
for(j=1;j<1;j++)
{
if(p) p=p->next;
else break;
}
if(!p||i<1)
{
printf("请输入正确的值\n");
return 0;
}
s=(LNode*)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
return 1;
}
LinkList CreateList_L(LinkList head)
{
char temp;
LinkList p;
printf("请输入结点值(输入0结束):");
fflush(stdin);
scanf("%c",&temp);
while(temp!='0')
{
if(('A'<=temp&&temp<='Z')||('a'<=temp&&temp<='z'))
{
p=(LinkList)malloc(sizeof(LNode));
p->data=temp;
p->next=head->next;
head->next=p;
}
printf("请输入结点值(输入0结束):");
fflush(stdin);
scanf("%c",&temp);
}
return head;
}
int ListDel_L(LinkList head,int i)
{
LinkList p,tmp;
int j;
p=head->next;
tmp=head;
for(j=1;j<i;j++)
{
if(p)
{
p=p->next;
tmp=tmp->next;
}
else break;
}
if(!p||i<1)
{
printf("请输入正确的值:\n");
return 0;
}
tmp->next=p->next;
free(p);
return 1;
}
void ListPint_L(LinkList head)
{
LinkList p;
int i=0;
p=head->next;
while(p!=NULL)
{
i++;
printf("第%d个元素是:",i);
printf("%c\n",p->data);
p=p->next;
}
}
void main()
{
int i;
char cmd,e;
LinkList head;
head=(LinkList)malloc(sizeof(LNode));
head->next=NULL;
CreateList_L(head);
ListPint_L(head);
do
{
printf("i,I...插入\n");
printf("d,D...删除\n");
printf("q,Q...退出\n");
do
{
fflush(stdin);
scanf("%c",&cmd);
}while ((cmd!='d')&&(cmd!='D')&&(cmd!='i')&&(cmd!='I')&&(cmd!='q')&&(cmd!='Q'));
switch (cmd)
{
case 'i':
case'I':
printf("请输入你要插入的数据:");
fflush(stdin);
scanf("%c",&e);
printf("请输入你要插入的位置:");
scanf("%d",&i);
ListInsert_L(head,i,e);
ListPint_L(head);
break;
case 'd':
case 'D':
printf("请输入你要删除元素的位置:");
fflush(stdin);
scanf("%d",&i);
ListDel_L(head,i);
ListPint_L(head);
break;
}
}while ((cmd!='q')&&(cmd!='Q'));
}

❾ 数据结构C语言版

完整的C代码,希望对你有帮助

#include <stdio.h>
#include <stdlib.h>
#define List_Init_Size 10
typedef int ElemType;

typedef struct
{
ElemType *elem;
int listsize; /*线性表的长度*/
int length; /*当前元素个数*/
}SqList;

/*初始化线性表*/
int InitList(SqList *L)
{
L-> listsize=List_Init_Size;
L-> elem=(ElemType*)malloc(List_Init_Size*sizeof(ElemType));
if(!L-> elem)return -1;
L-> length=0;
return 1;
}

void Fen(SqList *L,SqList *Lb,SqList *Lc) //此函数实现分开放置
{
int i,j=0,k=0;
Lb->listsize=5; Lb->elem=(ElemType*)malloc(5*sizeof(ElemType));
Lc->listsize=5; Lc->elem=(ElemType*)malloc(5*sizeof(ElemType));
for(i=0;i<10;i++)
{
if(i%2==0)
{
Lc->elem[j]=L->elem[i];j++;
}
else if(i%2==1)
{
Lb->elem[k]=L->elem[i];k++;
}
}
}

void main()
{
int i,e;SqList L,Lb,Lc;
InitList(&L);
printf("请输入十个数,用空格隔开:\n");
for(i=0;i<10;i++)
{
scanf("%d",&L.elem[i]);
}
printf("你构造的线性表是:\n");
for(i=0;i<10;i++)
{
printf( "%d ",L.elem[i]);
}
Fen( &L,&Lb,&Lc);

printf("\n线性表Lb为:\n");
for(i=0;i<5;i++)
{
printf( "%d; ",Lb.elem[i]);
}

printf("\n线性表Lc为:\n");
for(i=0;i<5;i++)
{
printf( "%d; ",Lc.elem[i]);
}

}

❿ 严蔚敏数据结构c语言版和第二版是一样的吗

基本一样,但是c语言版更强调了抽象数据类型。

热点内容
上网的账号和密码是什么东西 发布:2024-09-20 16:31:31 浏览:612
安卓手机王者荣耀如何调超高视距 发布:2024-09-20 16:31:30 浏览:428
安卓G是什么app 发布:2024-09-20 16:23:09 浏览:81
iphone怎么压缩文件 发布:2024-09-20 16:08:18 浏览:356
linux查看用户名密码是什么 发布:2024-09-20 16:03:20 浏览:744
mac执行python脚本 发布:2024-09-20 15:58:52 浏览:778
单片机android 发布:2024-09-20 09:07:24 浏览:765
如何提高三星a7安卓版本 发布:2024-09-20 08:42:35 浏览:664
如何更换服务器网站 发布:2024-09-20 08:42:34 浏览:311
子弹算法 发布:2024-09-20 08:41:55 浏览:289