C语言数据结构的问题,本人是初学者,请各位大侠们帮帮忙!

作者&投稿:进蚀 (若有异议请与网页底部的电邮联系)
跪求c语言课程设计,本人对这玩意儿一窍不通,请各位大侠帮帮忙,要挂科了~

你可以去书店购买相关的书籍看,自学,这样比较好

#include
void main()
{
long a,b,r;

scanf("%ld",&a);
b=0;
do{
r=a%10;
a=a/10;
b=b*10+r;
}while(a);

printf("%ld",b);
}

呵呵,正负数没有限制的。输入一个数都可以反序的

#include<stdio.h>

#include<malloc.h>

/*从键盘输入5个学生的信息,

学生的信息包括姓名和学号两个部分,

产生顺序表,并输出用户输入的结点值。

从键盘输入要插入学生的学号,姓名,

将其插入在对应位置上,

输出顺序表所有结点值,观察输出结果*/

//#define uchar unsigned char

//#define uint  unsigned int

//#define NULL 0

#define LEN sizeof(struct student)

struct student             //创建简单链表 

{

       long num;

       char name[20];

       struct student *next;       

};

int n;

struct student *creat(void)        //定义函数。带回一个指向链表头指针 

{

 struct student *head;

 struct student *p1,*p2;

 n=0;                              //结点个数 

 p1=p2=(struct student*)malloc(LEN); //开辟一个新单元,开辟一个长度为LEN的内存区 

 scanf("%ld,%s",&p1->num,&p1->name);

 head=NULL;

 while(p1->num!=0)

 {

  n=n+1;

  if(n==1)head=p1;

   else p2->next=p1;

  p2=p1;

  p1=(struct student*)malloc(LEN);

  scanf("%ld,%s",&p1->num,&p1->name);

 } 

 p2->next=0;

 return(head);

}

void print(struct student *head)     //输出函数 

{

 struct student *p;

 printf("
共%d个人
",n);

 p=head;

 if(head!=NULL)

   do

   {

    printf("%ld %s
",p->num,p->name);

    p=p->next;

   }

   while(p!=NULL); //判断输出是否完成 

}

struct student*insert(struct student *head,struct student *stud)     //插入

{

 struct student *p0,*p1,*p2;

 p1=head;                   //指向第一个结点 

 p0=stud;                   //指向要插入的结点 

 if(head==NULL)

   {head=p0;p0->next=NULL;}//p0的结点作为头结点 

 else

   {

    while((p0->num>p1->num)&&(p1->next!=NULL))

     {

      p2=p1;

      p1=p1->next;

     }

     if(p0->num<=p1->num)

       {

        if(head==p1)head=p0;

        else p2->next=p0;

        p0->next=p1;

       }

     else

      {p1->next=p0;p0->next=NULL;}//插到最后的结点之后 

   }

 n=n+1;                            //结点数加一 

 return(head);

int main()

{

 struct student *head,*stu;

 long del_num;

 printf("输入学生信息
");

 printf("一次输入一个人,学号姓名逗号隔开
");

 printf("以0,0结束输入
");

 head=creat();              //建立量表 

 print(head);

 printf("
输入要插入的学生
");

 stu=(struct student *)malloc(LEN);

 scanf("%ld,%s",&stu->num,&stu->name);

 while(stu->num!=0)

  {

   head=insert(head,stu);

   print(head);

   printf("输入要插入的学生
");

   stu=(struct student*)malloc(LEN);

   scanf("%ld,%s",&stu->num,&stu->name);

  }

 // return 0;

}

我也是新人 - -   下午3小时就交代在你这里了



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

//定义一个结点结构
typedef struct stu {
int num;
char name[11];
}STUDENT;
struct node{
STUDENT data; //数据,可以是任何复杂类型数据
struct node *next; //结点间连接的指针,用来指向下一个结点,通过next可以找到下一个结点,为NULL时,表示到了表尾
} ;

void creat_link ( struct node *h , int n )
{
struct node *tail=h , *p=NULL ;
int i;
for( i=0;i<n;i++ )
{
//创建一个数据结点
p=(struct node *)malloc( sizeof(struct node) );
//结点数据赋值
scanf( "%d%s" , &p->data.num , p->data.name) ;
//将新结点追加到表尾,即当前表尾的next指向p
tail->next=p;
//将p置为当前尾结点
tail=p;
}
tail->next=NULL; //表尾标志
}

void free_link ( struct node *h )
{
struct node *p ;
while ( h )
{
p=h ; //记下要释放的结点
h=h->next ; //表头指针指向下一个结点
free(p);//释放当前结点
}
}

void output ( struct node *h )
{
struct node *p=h->next ; //p指向第一个数据结点
while ( p )
{
printf("%d-%s\n" , p->data.num,p->data.name ); //输出结点数据
p=p->next ; //数据指针指向下一个结点
}
}

//创建一个带表头结点的链表
int main()
{
struct node *head=NULL ;
int num=5; //数据结点个数
head=(struct node *)malloc( sizeof(struct node) ); //创建一个表头结点
creat_link( head , num ); //创建一个链表,包括五个数据结点
output( head ); //遍历链表
free_link( head ); //释放链表
return 0;
}

结点值?一定要用链表写?


用c语言描述数据结构的问题
typedef int datatype:意思是用datatype这个字符串,实现int的功能,比如在做这行定义之后,定义一个整形变量a,就可以写成datatype a,效果和int a一样;typedef struct node:跟上面一样,可以用“linklist”这个字符串声明一个结构体,结构体的形式,按照上面 struct node { datatype data;struct ...

数据结构用什么语言
问题一:数据结构和语言是什么关系? 数据结构其本身是和语常无关的,也就是说数据结构只有一个版本,至于应该选择哪一个语言进行学习,可以就个人爱好与善长决定。C,C++,Java都是不 错的选择。数据结构和语言的关系就像数学定理和描述它的自然语言一样,你可以用中文表达勾股定理,也可以用英文,法文或者世界上任何一种...

关于c语言数据结构的头文件和Elemtype类的一些问题
结构体即为我们自己定义的数据类型。其中selemtype也是一个自定义的结构体名,具体代表什么还要看具体的代码。for(p=str;*p;p++)估计是写错了 如果前面没有定义 char p;那么这个循环语句应该写成 for(char p=str;*p;p++);p可以在for语句中定义,但是定义的p只能作用于这条for语句之内。

数据结构问题。。。c语言
图二那句void printN(int n)叫做函数申明。main是入口函数,调用printN这个函数。所以,只要确保printN定义在main函数之前,或者是在main调用之前申明。都可以。所以,你可以排成:1、include <stdio.h> void printN(int n){。。。}\/\/把代码放在main前面就不需要申明语句。int main(){ 。。p...

C语言 数据结构 文件及查找问题
关键字序列是{22,41,53,8,46,30,1,31,66}, 计算过程如下:插入关键字22, 索引(散列值) = 3*22 mod 11 = 0, 存入散列表: 下标 0 1 2 3 4 5 6 7 8 9 10 关键字 22插入关键字41, 索引(散列值) = 3*41 mod 11 = 2, 存入散列表: 下...

C语言数据结构问题,我已经在线性表中插入了一个元素,为什么表的长度还是...
要传指针啊,兄弟!我帮你改了一下,你看看:include <stdio.h> include <stdlib.h> define MAXSIZE 10 typedef struct node { int data[MAXSIZE];int length;}SeqList;\/\/定义一个线性表 SeqList L;\/\/顺序表的初始化 void SeqListInit(SeqList *L){ L->length = 0;} \/\/求线性表的长度...

c语言数据结构问题
首先你的程序有很多笔误,请仔细检查一下 在你程序的基础上,我加了段程序,希望能满足你的要求。void Help(){ printf("1 初始化线性表\\n");printf("2 在线性表中查找指定的元索\\n");printf("3 调用插人函数建立一个线性表\\n");printf("4 在线性表中删除指定位置的元素\\n");printf("5 ...

C语言数据结构关于顺序表插入的问题
1、insert函数修改如下,int insert(int x,int y, student *p1,student *p2){ int i,j,n;student *p,*p3;i=y;n=x;p=p1;p3=p2;if(i<1||i>n){ printf("插入位置输入错误!\\n");return 0;} if(n>=M){ printf("空间已满!\\n");return -1;} else { \/\/下面语句都要在大...

关于数据结构的问题(C语言版)
include <stdio.h>#define N 100int num[N],len=5;\/\/用作顺序存储的线性表 ,定义出事长度lenint main(){ int i=0; printf("输入原始线性表五个数据:"); for(i=0; i<len; i++)\/\/输入初始数据 scanf("%d",&num[i]); printf("原始线性表:"); for(i=0; ...

5.数据结构问题(用C++语言—):试编写一个算法,找出一个循环链表中的最...
struct link { int data;struct *prior,*next;};int min_link( struct link *head ){ struct link *p=head ; \/\/无头结点的表 int min=0;do { if ( p->data < min )min=p->data;p=p->next;} while( p&&p!=head);return min;} ...

仙居县15673978003: c语言基础差,数据结构学不会怎么办 -
祢宁大生: c语言就是函数的调用,,面向过程语言,C语言程序就是多个函数调用的结果.学习C的时候都是从main开始到结束,整个过程都有,,而在数据结构中学习的只是一个个函数..但函数的调用,参数的传递,具体细节需要你自己去实现,.数据结构学习的是方法,,怎么用是你自己的事,这说明你C语言函数那块没掌握好,不管你做什么的只要是软件开发,操作系统,数据结构是基础,说句不好听的,只要数据结构,操作系统,在学一种语言,什么工作都拿下,现在你还是好好学习吧,,记住给自己一个方向,不要什么课都学,抓住主要的,一本书花一年,害怕学不会.加油哦

仙居县15673978003: 初学者求解一道数据结构[C语言版]的题目 -
祢宁大生: /*** * *题目:已知线性表中的元素以值递增有序排列,并以单链表做存储结构.试写一高效的算法, * 删除表中所有值大于 mink 且小于 maxk 的元素(若表中存在这样的元素),同时释放 * 被删除节点空间,并分析你的算法的时间复杂度(注意...

仙居县15673978003: C语言数据结构小问题? -
祢宁大生: 这个队列是个循环队列 比如队列只有10个元素,现在的队列头指到9(队列尾部), 你要是取下一个元素的话就是(9+1)%10 = 0,就又回到了0,循环队列的原理就是这样的

仙居县15673978003: 新手C语言数据结构问题题目是:假设以顺序存储结构实现一个双向栈,
祢宁大生: 从答案开头的结构体类型定义中可以看出:base是指针类型变量,存储动态申请来的数组的起始地址(base可以当作数组名使用);top0和top1也是指针类型变量(即栈0...

仙居县15673978003: 数据结构的小问题,用c语言哦 -
祢宁大生: 1、 long f(int k,m) { int i; long x=0; if(m<k-1)return(0); else if(m<k)return(1); else for(i=1;i<=k;i++)x+=f(m-i); retur(x); }2、 long f(int k,m) { int i,j; long a[100]={0}; a[k-1]=1; for(i=k;i<m;i++) for(j=1;j<=k;j++)a[i]+=a[i-j]; return(a[m]); }

仙居县15673978003: 怎么把数据结构 用C语言运行起来, 我是初学 尤其是严蔚敏的那一本教材 有很多的错误 -
祢宁大生: 不是很明白你的意思, 数据结构其实就是对数据按一定的规则进行组合或限制(比如栈就限制了先进后出,本质上还是一个数组,当然用链表也可以). 所以所谓的用C运行其实就是调用函数.数据结构是用来实现一些算法或者特定功能的, 按照书上或者你自己的想法去实现一些功能,在实现的过程中自然会用到数据结构了

仙居县15673978003: 关于C语言数据结构,该如何学习和入门? -
祢宁大生: http://www.programfan.com/article/subject1.asp这是入门讲座网址 找一本专门记c的笔记本,边看书边把自己认为重要的记下来, 推荐用 谭浩强的《c程序设计》 首先你要买一本清华大学出版社出版的 《C程序设计(第三版)》 谭浩强编的 和高...

仙居县15673978003: C语言的数据结构应该怎么学?
祢宁大生: 这个问题问的人还挺多 任何语言刚开始学都有难度 但必须得认真对待 数据结构是一种思维方法,所以得多思考,多看多练习,多问问题以增加印象,这样就能自己快速掌握 多尝试,练习简单的程序对学习它也有好处 数据结构的主要用途是按一定的方式存储数据,以方便查找和管理,所以得学好 我自我感觉还是链表和线性表这一块用到的特别多 得好好学 多交流 一起学习!!

仙居县15673978003: C语言数据结构问题,刚学就不懂了 -
祢宁大生: while(p!=NULL) {p=p->link;++i; //这里有问题,还没有访问数据就直接将指针移到后面节点了; sum=sum+p->data;} //这个应该写到上面,另外因为上面的原因可能会导致内存非法操作,如你操作到p指向c的时候,p此时不为NULL,但当你执...

仙居县15673978003: C语言数据结构问题 -
祢宁大生: 所谓折半查找就是在所要查找元素集合的范围内,依次与表中间的元素惊醒比较,如果找到与关键字相等的元素,则说明查找成功,否则利用中间位置将表分成两段.如果查找关键字小于中间位置的元素值,则进一步与前一个子表的中间位置元...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网