关于C语言数据结构的问题

作者&投稿:兆昆枯 (若有异议请与网页底部的电邮联系)
C语言数据结构问题~

-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
越界| 合法范围 |越界
我的理解是
错误位置是不是超出了数组所设定的20的大小,即超出合法范围。
如果是这样的话,你对未知内存区域(您提到的错误未知)进行赋值,程序基本都会蹦。

顺序表原来如果有10个元素,你插入的范围是第i个位置之前,如果是在第10个元素后面插入的话,那么就是第11个位置之前,此时i的值应该为L.length+1。

typedef int m;//声明m为int型
typedef struct A//定义结构体类型,并声明A、B
{m data;//定义m型变量data
struck A*next;//定义结构体类型A的指针变量next
}A, *B;//A为结构体类型,B为结构体类型指针
所有,A、B不是同一个类型,只定义一个也可以,可以这样做。
A a;//定义结构体类型
A *p;//定义结构体类型指针,(或者 B p;//直接是结构体类型指针


程序第八行,语法错误,在常量前缺少分号;
程序第十一行,警告,有一个参数与声明的类型不同;
程序第十一行,警告,ptintf未定义返回值类型,默认为整型;
程序第十一行,警告,exit未定义返回值类型,默认为整型;
程序第十二行,语法错误,常量;
程序第十七行,错误,list左边指定的List为未定义的结构体/共用体;
2、
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
#define LIST_INIT_SIZE 100
#define LIST_INCREMENT 10
typedef struct
{
ElemType *elem;
int length;
int listsize;
}SqList ;

void print(ElemType c)
{
printf("%d ",c);
}

void InitList (SqList &L)
{ // 操作结果:构造一个空的顺序线性表L
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem)
exit(OVERFLOW); // 存储分配失败
L.length=0; // 空表长度为0
L.listsize=LIST_INIT_SIZE; // 初始存储容量
}

Status ListInsert(SqList &L,int i,ElemType e) //
{ // 初始条件:顺序线性表L已存在,1≤i≤ListLength(L)+1
// 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1
ElemType *newbase,*q,*p;
if(i<1||i>L.length+1) // i值不合法
return ERROR;
if(L.length>=L.listsize) // 当前存储空间已满,增加分配
{
if(!(newbase=(ElemType *)realloc(L.elem,(L.listsize+LIST_INCREMENT)*sizeof(ElemType))))
{
printf ("存储分配失败");
exit(OVERFLOW); // 存储分配失败
}
L.elem=newbase; // 新基址
L.listsize+=LIST_INCREMENT; // 增加存储容量
}
q=L.elem+i-1; // q为插入位置
for(p=L.elem+L.length-1;p>=q;--p) // 插入位置及之后的元素右移
*(p+1)=*p;
*q=e; // 插入e
++L.length; // 表长增1
return OK;
}

void ListTraverse(SqList L)
{ // 初始条件:顺序线性表L已存在
// 操作结果:打印输出每一个元素
ElemType *p;
int i;
p=L.elem;
for(i=1;i<=L.length;i++)
{
print(*p++);
printf("\n");
}
}

void main()
{
int i,n;
printf ("请输入一个整数:");
scanf ("%d",&n);
int *temp;
SqList l;
InitList (l);
temp=(int *)malloc ((n+1)*sizeof (int));
if (!temp)
{
printf ("存储分配失败");
exit (OVERFLOW);
}
for (i=0;i<n;i++)
{
printf ("请输入第%d个元素:",i+1);
scanf ("%d",temp);
if (ListInsert(l,i+1,*temp))
temp++;
else
{
printf ("插入失败");
exit(0);
}
}
ListTraverse(l);
}
另外,团IDC网上有许多产品团购,便宜有口碑

一样的,相当于别名而已


用C语言实现数据结构中常用算法,如对链表的操作、查找、排序等。_百...
\/\/\/*显示数据*\/\/\/ \/\/\/ void show(link l){ link p; int j;p=l;j=0;cout<<"链表的值为:\\n";while(p->next){ cout<next->date<<endl;p=p->next;} } \/\/\/ \/\/\/ \/\/\/销毁链表\/\/\/ \/\/\/ void destorylinst(link &L){ while(L)...

求用C语言和数据结构中的无向图存储结构编一个校园导游图完全的程序代...
求用C语言和数据结构中的无向图存储结构编一个校园导游图完全的程序代码? 要完全用C语言编程的,各位编程高手帮忙啊!!非常感谢... 要完全用C语言编程的,各位编程高手帮忙啊!!非常感谢... 展开  我来答 1个回答 #热议# 网文质量是不是下降了?哈哈哈好的哈哈哈哈哈哈哈哈哈哈哈哈好哈哈 2010-01-03 ...

c语言,数据结构
如果写*p=8,再打印a的值,a=8了,表明这不是对p赋值,而是对a赋值!而p的值没有变,仍然是a的地址。这就是p与*p的区别。回头再看typedef struct LNode *LinkList;它定义了一个LNode型变量类型,变量类型的名字是LinkList,*代表它是一个指针类型,所以LinkList就成为一个指向LNode数据的指针...

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> int xLen = 8;\/\/棋盘行数 int yLen = 8;\/\/棋盘列数 int xyLen = xLen * yLen;\/\/最大步数 int arr[8][8];\/\/保存每一个坐标的步数 \/\/每个坐标周围的8个马口相对于当前坐标的相对坐标 int nextXY[8][2] = {{1, 2}, {1, -2}, {-1, 2},...

C语言 数据结构 二叉树实现的疑问
C语言 数据结构 二叉树实现的疑问 先敬仰一下楼主的勤奋!我主要针对第二个算法说,我觉得上面这段话也是在讲第二个算法。其实两个算法差不太多。1. 栈顶记录中的指针其实就是指栈顶,每次push()进去或者pop()出来的那个p。他代表的是正在访问的节点得下一个节点。比如,访问一个树t的左子树t-...

c语言 数据结构课程设计 图书管理系统
同样的要求也可能通知我c语言 数据结构*** 图书管理**ES:\\\\0E2FE4891FA2D3D9F5D16A42DDEE7969 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 1条折叠回答 其他类似问题 2013-04-29 数据结构课程设计--学生成绩管理系统C语言 5 2015-06-30 数据结构课程设计 图书借阅管理系统 C语言版 顺序存储 1...

C语言(数据结构),顺序表及链表的问题
1..顺序表的后插(入)的C程序#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define LIST_INIT_SIZE 100 \/\/顺序表初始容量(能容纳的元素个数)#define LISTINCREMENT 10 \/\/容量增量typedef int ElemType; \/\/元素类型ElemType为inttypedef int Status; \/\/函数返回值类型Status为int\/\/...

高分: C语言 数据结构之长整数四则运算,要求用链表...
} else if (arg_value[pos] == '+') { ++pos; --rest; } \/\/ 读取数据,每次to_read位 while (rest) { string::size_type to_read = rest % 4; to_read = to_read ? to_read : 4;

跪求C语言版数据结构的改错~!希望高手帮解决~~~
define NULL 0 include<malloc.h> include<stdio.h> struct node { float price;int num;struct node *next;};struct node* head,*pl,*ql,*s;void creattv(){ float c;int num;head=(struct node*)malloc(sizeof(struct node));ql=head;printf("请输入入库电视机的价格:");scanf("%f"...

天桥区15657567117: c语言数据结构问题 -
却万利福: L.elem=new ElemType[MAXSIZE];直接改成L.elem=new book[MAXSIZE]; 就好了 你那ElemType只是函数提示而已吧..都没定义的

天桥区15657567117: 数据结构的小问题,用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]); }

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

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

天桥区15657567117: C语言 程序设计 基本的数据结构问题 -
却万利福: 插入的元素e在新的序列中的第i个上,这里的i-1其实就是第i个;所以该程序1:首先是用q指向序列的第i个数据存放的地址;2:然后,序列从q指向的第i个元素开始向后移动一位,然后就是将待插入元素,插入第i项;所以是在第i个元素之前插入.

天桥区15657567117: 数据结构问题(C语言) -
却万利福: VRType是顶点关系类型.对无权图来说,adj取1表示顶点相邻,adj取0 表示不相邻;对有权图,adj则为权值类型.infoType是定义的函数类型,info未改弧相关信息的指针.

天桥区15657567117: 数据结构(使用C语言)问题 -
却万利福: 首先得知道中缀转后缀的方法,那就是从左到右开始操作数直接输出,然后运算符进栈..进栈时注意运算符的优先级,置于优先级自行看课本或者百度了解.A*(B-D)+E/F 栈:*(-) 输出:ABD 此时,出现有括号,要将括号的运算符输出;栈:* 输出:ABD- 因为+优先级小于*,因此*要输出,然后+进栈;栈:+ 输出:ABD-*E 因为/优先级大于+所以/进栈;栈:+/ 输出:ABD-*EF 左后输出栈中元素,注意,栈的出栈是FILO;栈:输出:ABD-*EF/+; 至于准确性,你可以用后缀转中缀的方式检验,就是在后缀表达式中从左到右开始,遇到运算符就提取他前面的两个操作数进行运算.

天桥区15657567117: C语言数据结构到底要了解哪些问题? -
却万利福: 正如楼上说的,学习框架就是这些,线性表 ,栈和队列 ,树和二叉树 ,图了解它们的定义含义,主要特点和性质,最重要的是,深刻知道它们各自有哪些操作及对应的函数

天桥区15657567117: 关于C语言数据结构的问题
却万利福: A是结构体类型,B是结构体指针类型.2个都是类型的别名,2个都可以不声明,这样的话定义变量时就必须struct A sA;这样去定义. 定义类型别名A之后,可以这样定义结构体变量,A sA; 定义类型别名B之后,可以这样定义一个结构体的指针,B psA; X和Y2个变量的类型不一样,反过来定义,那2者的类型就交换了. 对,等价

天桥区15657567117: C语言数据结构小问题? -
却万利福: 这个队列是个循环队列 比如队列只有10个元素,现在的队列头指到9(队列尾部), 你要是取下一个元素的话就是(9+1)%10 = 0,就又回到了0,循环队列的原理就是这样的

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