㈠ 在c语言中,如何构造一个空的顺序线性表,然后怎么用
#include<stdio.h>
#define MAXSIZE 100
struct List
{
int L[MAXSIZE];
int top;
};
int Init()//橘芦top指针初始化为0
{
int top;
top=0;
return top;
}
void Input(struct List *t,int p,int n)//输入n个数据
{
if(n==0||n>=MAXSIZE)printf("空队列\n");
else
for(p=0;p<n;p++)
scanf("%d",&t->L[p]);
}
void Output(struct List *s,int i,int m)//闭租输出m(=n)个数据哈
{
if(m==0||m>圆态带=MAXSIZE)printf("无法输出\n");
else
for(i=0;i<m;i++)
printf("%d ",s->L[i]);
}
void main()
{
struct List r;
int n,m;
scanf("%d",&n);
m=Init();
Input(&r,m,n);
Output(&r,0,n);
}
㈡ c语言顺序表的创建程序
/*
*程序不足之处:1,main函数不应该为 void main
* 2,创建空的顺序表函数中 sqlist L;//定义顺序表L L是局部变量,
函数结束即销毁,应该用指针代替
* 3,SqList CreateList(SqList L) //创建顺序表(非空)函数中:
scanf("%d",&L.elem); L里面的elem本来就是地址,
没必要再加&符号,且每次输入都一直放在首地址,
没达到程序所要表达的意思
* 4,void print(SqList L) //输出当前顺序表 函数中:
printf("%-3d",L.elem); 和上面是一样的道理
* 5,main函数中没有将申请的内存释放
*现将程序稍作修改如下,望采纳
*/
#include<stdio.h>
#include<stdlib.h>
#define LIST_INIT_SIZE 100
#define Icreament 20
typedef int ElemType; //用户自定义数据元素类型
typedef struct
{
ElemType *elem; //顺序表的基地址
int length; //顺序表的当前长度
int listsize; //预设空间容量
}SqList; //线性表的顺序存储结构
SqList* InitList() //创建空的顺序表
{
SqList* L = (SqList*)malloc(sizeof(SqList));//定义顺序表L
if(!L)
{
printf("空间划分失败,程序退出
");
return NULL;
}
L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L->elem)
{
printf("空间划分失败,程序退出
");
return NULL;
}
L->length=0;
L->listsize=LIST_INIT_SIZE;
return L;
}
int CreateList(SqList* L) //创建顺序表(非空)
{
int number; //顺序表中元素的个数
int i; //循环变量
printf("请输入顺序表中元素的个数:");
scanf("%d",&number);
if(number > LIST_INIT_SIZE)//一定要判断输入的个数是否大于顺序表的最大长度
{
printf("输入个数大于顺序表的长度
");
return 0;
}
for(i=0;i<number;i++)
{
printf("输入第%d个数: ",i+1);
scanf("%d",L->elem+i);//L->elem+i:每次的输入都保存在顺序表元素中的下一个地址,而不是一直放在元素的首地址
}//给顺序表中每个数据元素赋值
L->length=number; //当前顺序表的长度
return 1;
}
void print(SqList* L) //输出当前顺序表
{
int i;
for(i=0;i<L->length;i++)
{
printf("%-3d",*(L->elem + i));//L->elem+i:和输入是一个道理
}
printf("
");
}
int main()
{
SqList* L = InitList();//申请一个指向顺序表的指针,并对其初始化
if(!L)//判断申请是否成功
{
printf("初始化线性表失败
");
return 1;
}
if(!CreateList(L))//判断创建顺序表是否成功
{
printf("创建顺序表失败
");
return 1;
}
print(L);//打印顺序表
free(L->elem);//释放申请的顺序表元素的内存
free(L);//释放申请的顺序表内存
return 0;
}
运行效果如图:
㈢ 数据结构c语言版 创建一个顺序表
http://blog.csdn.net/xuhang0910/article/details/48488881
线性表缺宽顺序存储誉扮逗庆卖基础
㈣ c语言建立空顺序表
从答游贴上来的代码看不出有什么问题,下面提两条建议:
1、作为链表数据类型,其内部应该有一个预先定义大小的数升咐组,你这里用int *elem,这只是一个指针,你是否打算在需要时再申请动态内存空间?
2、链表数据&L作为函吵举纯数实参是什么意思?应该是*L才对,而作为函数形参,*L是错的,而&L是对的。请体会!
㈤ 如何用C语言建立空顺序表,只要一个空表,求大神给串完整的代码,能运行的,谢谢
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<memory.h>
constintMAXSIZE=档岩漏20;//表长
typedefintDataType;
typedefstructlist{
DataTypedata[MAXSIZE];
intsize;
}SqList;
intmain(){
SqListaL;//声明一个表
inti,j,flag;
DataTypex;
memset(aL.data,0,MAXSIZE);//表元素清零
aL.size=0;
srand((unsigned)time(NULL));
for(i=0;i<MAXSIZE;行烂++i){
x=rand()%100+1;
flag=1;
for(j=0;j<aL.size&&flag;++j)
flag=(aL.data[j]!=x);
if(flag==0)--i;
else{
aL.data[aL.size]=枣郑x;
++aL.size;
}
}
for(i=0;i<aL.size;++i)
printf("%d",aL.data[i]);
printf(" ");
return0;
}
㈥ 如何建造一个空的顺序表然后再向里面插入数据和C语言。
可以在pandas中创建一个空DataFrame的方法,类似于创建了一个空字典,之后向里面插入数据
㈦ C语言建立顺序表
#include"iostream.h"
#include"malloc.h"
#include"stdio.h"
#define MAX_LIST_SIZE 100
typedef int elemtype;
typedef struct Node
{
elemtype *data;
int length;
int listsize;
}SqList;
void InitList(SqList &L)
{
L=(SqList *)malloc(MAX_LIST_SIZE*sizeof(SqList));
L->length=0;
L->listsize=MAX_LIST_SIZE;
}
void Insert(SqList &L,int i,elemtype x)
{
int k;
for(k=L->length;k>=i;k--)
*L->data[k+1]=*L->data[k];
*L->data[k]=x;
}
void Print(SqList L)
{
for(int i=0;i<L->length;i++)
cout<<*L->data[i]<<" ";
}
void main()
{
elemtype e;
int n;
SqList *L;
InitList(L);
cout<<"输入你要插入的元素:"<<endl;
cin>>e;
cout<<"输入你要插入的位置:"<<endl;
cin>>n;
Insert(L,n,e);
Print(L);
}
这里就简要的写了下第一小问,时间问题,没有调试,你自己看看
其实网上这方面的资料很多的,你可以网络一下
㈧ 用C语言编写一个有关顺序表的程序代码
#include<stdio.h>
#include<stdlib.h>
#define Size 50
//定义顺序表结构体类型
typedef struct Table{
int*head;//顺序表头指针,为整型
int length;//顺序表中元素个数
int size; //顺序表的长度
}Table;
//创建顺序表
Table CreateTable(){
Table T;
if(!(T.head=(int*)malloc(Size*sizeof(int)))){
printf("内存分配错误!\n");
exit(0);
}
T.size=Size;
T.length=0;
return T;
}
//增加
void Insert(Table T,int set,int values)//set为插入的位置,values为值
{
//首先判断插入位置是否正确
if(set<0||set>T.length){
printf("插入位置不正确!\n");
reutrn;
}
//判断是否有足够的内存空间存储增加的数
if(T.length==T.size){
if(!(T.head=(int*)realloc(T.head,(T.size+10)*sizeof(int)))){
printf("内存分配错误!\n");
exit(0);
}
T.size+=10;
}
//插入数据
for(int i=s.length;i>set;i--)
T.head[i]=T.head[i-1];
T.head[set]=values;
T.length++;
}
//删除
void Delete(Tabel T,int set)
{
if(set<0||set>=T.length)
{
printf("删除数的位置不争确,删除失败!\n");
return;
}
//输出数据
for(int i=set;i<s.length;i++)
T.head[i]=T.head[i+1];
T.length--;
}
//查找
int Search(Tabel T,int value)
{
for(int i=0;i<T.length;i++)
if(T.head[i]==value)
return i;
return -1;
}
㈨ 用C语言创建一个顺序表并完成插入等操作
/*
GY52122008
请输入插入字符 : -
请输入插入位置 : 7
GY5212-2008
Press any key to continue
*/
#include<malloc.h>
#include<stdio.h>
#include<string.h>
#definemaxsize100
typedefstruct{
char*data;
intlength;
}sqlist;
voidinitlist(sqlist*&L){//初始化顺序表
L=(sqlist*)malloc(sizeof(sqlist));
L->data=(char*)malloc(maxsize);
L->length=0;
}
voidcreatelist(sqlist*&L,chara[],intn){//建立顺序表
inti;
for(i=0;i<n;i++)L->data[i]=a[i];
L->length=n;
}
boollistinsert(sqlist*&L,inti,chare){//插入数据元素
intj;
if(i<1||i>L->length+1)returnfalse;
i--;
for(j=L->length;j>i;j--)L->data[j]=L->data[j-1];
L->data[i]=e;
L->length++;
returntrue;
}
boollistdelete(sqlist*&L,inti,char&e){//删除数据元素
intj;
if(i<1||i>L->length)returnfalse;
i--;
e=L->data[i];
for(j=1;j<L->length-1;j++)L->data[j]=L->data[j+1];
L->length--;
returntrue;
}
intlistlength(sqlist*L){//求线性表长度
return(L->length);
}
voiddestroylist(sqlist*&L){
free(L);
}
intlocateelem(sqlist*L,chare){//按元素查找
inti=0;
while(i<L->length&&L->data[i]!=e)i++;
if(i>=L->length)return0;
elsereturni+1;
}
voiddisplist(sqlist*L){//输出线性表
inti;
for(i=0;i<L->length;i++)printf("%c",L->data[i]);
printf(" ");
}
intmain(){
intpos,len;
charch,data[50]="GY52122008";
sqlist*L;
initlist(L);//先初始化
len=strlen(data);
createlist(L,data,len);//创建表
displist(L);
printf("请输入插入字符:");
scanf("%c",&ch);
printf("请输入插入位置:");
scanf("%d",&pos);
if(listinsert(L,pos,ch))displist(L);
elseprintf("插入操作失败。 ");
free(L->data);
free(L);
return0;
}
㈩ 是C语言中建立顺序表的程序
C语言中建立顺序表的操作顺序如下:
1.清空顺序表:其实清空只不过将元素长度置0,让后面插入数据函数的长度从0开始,其实并不是真正清空,之前的数据元素在内存中还存在,只不过可以被新元素覆盖而已。
2.判断顺序表是否为空