关于c语言线性表

作者&投稿:秦虏 (若有异议请与网页底部的电邮联系)
C语言 线性表的实现~

typedef int datatype;
#define maxsize 1024
typedef struct
{ ElemType data[MaxSize];
int length;
}SqList;
void InitList(SqList &L)
{ L.length=0;
}
int GetLength(SqList L)
{return L.length;
}
int GetElem(SqList L,int i,ElemType &e)
{ if (iL.length)
return 0;
else
{ e=L.data[i-1];
return 1;
}
}
int Locate(SqList L,ElemType x)
{int i=0;
while (L.data[i]!=x)
i++;
if (i>L.length)
return (0);
else
return(i+1);
}
int InsElem(SqList &L,ElemType x,int i)
{ int j;
if(iL.length+1)
return 0;
for(j=L.length;j>i;j--)
L.data[j]=L.data[j-1];
L.data[i-1]=x;
L.length++;
return 1;
}
int DelElem(SqList &L,int i)
{ int j;
if(iL.length)
return 0;
for(j=i;j<L.length;j++)
L.data[j-1]=L.data[j];
L.length--;
return 1;
}void DispList(SqList L)
{ int i;
for(i=1;i<=L.length;i++)
printf("%c",L.data[i-1]);
printf("
");
}
void main()
{ int i;
ElemType e;
SqList L;
InitList(L);
InsElem(L,'a',1);
InsElem(L,'c',2);
InsElem(L,'a',3);
InsElem(L,'e',4);
InsElem(L,'d',5);
InsElem(L,'b',6);
printf("xian xing biao:");DispList(L);
printf("chang du:%d
",GetLength(L));
i=3;GetElem(L,i,e);
printf("di %d ge yuan su :%c
",i,e);
e='a';
printf("yuan su %c shi di %d ge yuan su
",e,Locate(L,e));
i=4;printf("shan chu di %d ge yuan su
",i);
DelElem(L,i);
printf("xian xing biao:");DispList(L);
}

struct node {
int k1;

node *next;

};
void main() {
int pi =0;
int c=0;
scanf("%d",&pi);
scanf("%d",&c);
node *p, *k;
int kj=1;
p = (node *)malloc(sizeof(node));
p->k1=kj;
kj++;
k = p;
for (int j = 0; j < pi - 1; j++) {
k->next = (node *)malloc(sizeof(node));
k->next->k1=kj;
kj++;
k = k->next;
}
k->next = p;
int o = 0;
while (p != p->next) {
o++;
if (o % c == 0) {
k->next = p->next;
} else {
k = k->next;
}
p = p->next;
}
printf("%d
",p->k1);

}

是不是b的表尾标志需要去掉,才能正确表达ab合并到一起了。比如ab是字符串的话,都有标志\n.合并成一个了当然要去掉一个表尾了。

包括“stdio.h中”
包括的“CONIO.H”
#包括“stdlib.h中”
定义确定1
定义的错误
#定义溢出0
定义list_init_size 100

typedef结构
{
* ELEM
int长度;
诠释LISTSIZE; />} Sqlist;

诠释InitList_Sq的定义(Sqlist&L)/ /,L是小写
{
L.elem =(*)malloc的(list_init_size *如sizeof(int));
如果(L.elem)
出口(错误);
L.length = 0;
L.listsize = list_init_size;
返回OK;
}

诠释CreateList_Sq的定义(Sqlist&L)/ /,L的小写
{

printf的(“ ;输入数据:“);
(i = 0; I <L.length,我+ +)
scanf函数(”%d“的,与L.elem [I]); />返回OK;
}

无效的主要()
{
/ / Clrscr,();/ / VC6.0这句话的错误,我说明,在事实上,就在的#include 的标头文件

无效MergeList(LinearList,LinearList * B,LinearList * C)
(A == NULL)返回;
如果(b == NULL)返回;
如果(c ==返回NULL);

INT I,J,K;
I = J = K = 0;
同时(我长度&&?;长)
{
C->选项卡[K + +] =>选项卡[I]> b.tab [J]? A->选项卡[I + +]:b.tab [J + +]:

}
(== A->长度)

(J <b.length个)
C->选项卡[K + +] = B->选项卡[J + +];
其他
而(J 长)
C->选项卡[K + +] =>选项卡[I + +];
C->长度= A->长度+ B->长度;
}
像两个表来处理,不需要单独处理!

void MergeList( LinearList* a,LinearList* b,LinearList* c)
if(a==NULL)return;
if(b==NULL)return;
if(c==NULL)return;

int i,j,k;
i=j=k=0;
while(i< a->length && j<b->length)
{
c->tab[k++]= a->tab[i]>b.tab[j]? a->tab[i++]:b.tab[j++]:

}
if(i==a->length)

while(j<b.length)
c->tab[k++]= b->tab[j++];
else
while(j<a->length)
c->tab[k++]= a->tab[i++];
c->length=a->length+b->length;

}
两个表一样处理,不需要分别对待呀

C语言:下列有关线性表的叙述中,正确的是
答:线性表是一种线性结构。线性结构的特点是数据元素之间是一种线性关系,数据元素“一个接一个的排列”。在一个线性表中数据元素的类型是相同的,或者说线性表是由同一类型的数据元素构成的线性结构。链表是典型的线性表。对于B的话,链表的头没有前驱,对于C的话。链表的最后一个没有后续。

C语言中怎么定义个线性表
答:1、定义结构体类型,这里需要利用指针和结构体,其中m和n分别表示矩阵的行和列。2、为矩阵申请储存空间,注意这里使用了malloc()函数。3、初始化矩阵,这里将矩阵初始化为m*n的数组,且矩阵中的每一个元素的值均为0。4、释放存储空间。5、一般在定义阶段就确定数组的大小,输入数字即为数组大小。6、...

用C语言实现线性表的顺序存储(创建,插入,删除和查找)
答:cout<<"#\t\t 2.加载数据库\t\t #\n"; cout<<"#\t\t 3.删除学生信息\t\t #\n"; cout<<"#\t\t 4.保存学生信息\t\t #\n"; cout<<"#\t\t 5.数据库查询\t\t #\n"; cout<<"#\t\t 6.原序输出\t\t #\n"; cout<<"#\t\t 7.排序输出\t\t #\n"; cout<<"#\t\t 8...

线性表的基本操作c语言实现
答:SeqList* list = SeqList_Create(5);//创建线性表 int i = 6;//赋值6个变量,已超过线性表最大值 5 int j = 1;int k = 2;int x = 3;int y = 4;int z = 5;int index = 0;SeqList_Insert(list, &i, 7);//将这6个变量插入线性表中 SeqList_Insert(list, &j, 0);Seq...

C语言 统计线性表中元素的个数,int ListLength(struct Sqlist MyL...
答:线性表可以直接用malloc申请连续空间,按数组保存。但这样不方便后期增删。所以,建议使用链表来实现。下面代码就是用链表实现线性表。其中initList函数是生成了一个10节点的单向链表作为线性表。ListLength就是题目要的函数。(函数中顺带打印了链表内容,你不想要显示链表内容,就删掉printf语句)。include<...

一个线性表采用顺序表表示,设计一个算法,删除其中所有值等于X的元素...
答:include <stdio.h>#include <stdlib.h>#define ElemType int#define Status int#define OVERFLOW -1#define ERROR 0#define OK 1/* 线性表的动态分配顺序存储结构 */#define LIST_INIT_SIZE 10 /* 线性表存储空间的初始分配量 */#define LIST_INCREMENT 2 /* 线性表存储空间的分配增量 */...

C语言线性表基本操作求助
答:int GetElem(Sqlist* L, int i, ElemType* e)//用e返回线性表中第i个元素的值 { if (L->length ==0 || i<1 || i>L->length)//== return ERROR;e = L->data[i];//前面下标都是1开始,就不用-1了 return OK;} int MergeList(Sqlist* L1, Sqlist* L2, Sqlist *L3)//...

用C语言建立一个顺序存储的线性表并实现线性表的插入和删除操作_百度知 ...
答:4。基本操作有:初始化链表,增加结点和删除结点,求链表的长度等等。struct Linknode{ int data;struct Linknode *next;};这个地方有个知识点:这个是链表的数据结构是有结构体和指针构成。结构体名为Linknode.但这里面没有定义结构体变量,只有我们定义了结构体变量才能使用结构体。结构体变量怎么定义...

怎样在C语言创建线性表?
答:L=(LinkList *)malloc(sizeof(LinkList));\x0d\x0a r=L;\x0d\x0a for(i=0;idata=a[i];\x0d\x0a r->next=s;\x0d\x0a r=s;\x0d\x0a }\x0d\x0a r->next=NULL;\x0d\x0a}\x0d\x0a\x0d\x0avoid InitList(LinkList *&L) //初始化线性表\x0d\...

C语言创建一个线性表,然后输出线性表,如何编写程序?
答:L.elem[i++]=c;} L.length=i;printf("输入的顺序表元素:\n");for(i=0;i<L.length;i++)printf("%d ",L.elem[i]);printf("\n");} //在指定位置插入元素 StatusListInsert(SqList &L,int i,ElemType e){ ElemType *p,*q,*newbase;if(i<1||i>L.length+1){ printf("插入...