#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct{ int *elem;
int length;
int listsize;
}SqList;
int *newbase;
InitList_Sq(SqList &L){
L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
if(!L.elem) return 0;
L.length=0;
L.listsize=LIST_INIT_SIZE;
return 1;
}//InitList_Sq//
CreateList_Sq(SqList &L,int n){
L.length=n;
if(L.length>L.listsize){
newbase=(int *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int));
if(!newbase) return 0;
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
for(int i=0;i<n;i++)
L.elem[i]=rand()%100+1;
return 1;
}
InsertList_Sq(SqList&L,int i,int e){
int *p,*q;
if(i<1||i>L.length+1) return 0;
if(L.length==L.listsize){
newbase=(int *)realloc(L.elem,(LIST_INIT_SIZE+LISTINCREMENT)*sizeof(int));
if(!newbase) return 0;
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
p=&(L.elem[i-1]);
for(q=&L.elem[L.length-1];q>=p;q--)
*(q+1)=*q;
*p=e;
++L.length;
return 1;
}
DeleteList_Sq(SqList &L,int i){
int *p;
if(i<1||i>L.length) return 0;
p=&(L.elem[i]);
for(p;p<(L.elem+L.length-1);p++)
*(p-1)=*p;
++L.length;
return 1;
}
OutputList_Sq(SqList L,int n)
{
if(L.length==0) printf("此表为空表!\n");
for(int i=0;i<n;i++)
printf("%d",L.elem[i]);
return 1;
}
int menu_select(){
int n;
printf("1:初始化一个线性表:\n");
printf("2:创建一个包含15个元素的线性表:\n");
printf("3:将一个数插入到第i个元素之前:\n");
printf("4:删除第i个元素:\n");
printf("5:输出线性表的每一个元素:\n");
do
{
printf("请输入选项代码n=1..6\n");
scanf("%d",&n);
}
while(n<0||n>6);
return n;
}
void main()
{
int n,i,e;
SqList L;
n= menu_select();
while(1){
switch(n){
case1: printf("初始化一个空表!\n"); InitList_Sq(L);OutputList_Sq(L,L.length);break;
case2: CreateList_Sq(L,15); OutputList_Sq(L,n);break;
case3: scanf("%d",i); e=rand(); InsertList_Sq(L,i,e);
OutputList_Sq(L,n);break;
case4: scanf("%d",i); DeleteList_Sq(L,i); OutputList_Sq(L,n);break;
case5: OutputList_Sq(L,n);break;
}
}
}
这是题目要求:1)编写完成下列功能的函数:(1)初始化一个线性表;(2)创建一个包含15个不大于100的正整数值的线性表(15个值由计算机随机产生);(3)将一个数插在第i个元素前(i在程序运行时输入);(4)删除第i个元素(i在程序运行时输入);(5)输出线性表中所有元素。
2)用主函数调用你所编写的函数,并在使线性表有所变化的每一步输出线性表的内容,以验证你编程序的正确性。
c语言顺序表程序编写,高手快帮我啊!
这是我写的代码希望对你有帮助:\/* Note:Your choice is C IDE *\/ include "stdio.h"define maxsize 100 typedef struct { int data[maxsize];int length;}sequetiallist;main(){ int x,y,i=0,k;sequetiallist ll;printf("please create the list!\\n");scanf("%d",&y);while(y!=1...
线性表的基本操作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语言实现线性表的逆置问题,顺序和单链表。在线等高手
逆置有两种方法,第一是把所有节点反过来。还有一种就是改变节点中的值。第一种情况,其实可以考虑用头插法,来实现逆置。下面的算法是基于头插法的思想,逆置链表的,仅供参考。LinkList anti_linklist(LinkList demo){ LInkList *p,*q;\/\/work pointer LinkList head;head=new LinkList();head->...
c语言数据结构线性表插入和删除实现代码错误在哪
L->length = 0;return TRUE;}int insertlist(Sqlist *L,int pos,ElemType e) {int i;if(L->length == 0) { \/\/ 第一元素无条件插入L->elme[0] = e;L->length = 1;return TRUE;}if(L->length >= MAXSIZE) {printf("表满。length = %d。\\n",L->length);return ERROR;}if(...
用C语言实现线性表的顺序存储(创建,插入,删除和查找)
cout<<"输入有误!请重新输入!"<<endl; Sleep(DELAYTIME); break; } }}STUDENT * new_student()\/\/功能:创建学生信息(通过链表)\/\/返回值:头结点指针{ STUDENT *pnew,*p,*head; float *pfloat; char ch; head=NULL; do { system("cls"); pnew=(STUDENT *)malloc(sizeof(STUDENT)*1); cout<<"请...
怎么利用c语言实现顺序存储线性表的插入操作,有没有人会写程序_百度知...
比如你要在第i个元素之后插入,就把i+1直到最后一个元素依次向后移动一位,再把你要放的元素放到第i+1位置即可
用C语言编写程序实现顺序表的插入操作,并且从键盘读取元素给顺序表初...
\/\/int i;\/\/C++中C程序的变量定义放在开始 L.elem=(int *)malloc(LISTSIZE*sizeof(int));if(!L.elem) exit(0);L.listsize=LISTSIZE;\/\/printf("请输入线性表长度:");\/\/scanf("%d",&L.length);\/\/printf("为线性表赋值:");\/\/for(i=0;i<=L.length-1;i++)\/\/scanf("%5d",&...
用C语言头插法或尾插法建立带头结点的单链表,实现单链表上的插入,删除...
\/* 初始条件:顺序线性表L已存在。操作结果:将L重置为空表 *\/ Status ClearList(LinkList *L){ LinkList p,q;p=(*L)->next; \/* p指向第一个结点 *\/ while(p) \/* 没到表尾 *\/ { q=p->next;free(p);p=q;} (*L)->next=NULL; \/* 头结点指针域为空 *\/ return...
用C语言实现的,删除线性表中的值为奇数的元素的问题
如果是奇数的间隔大于等于1就不会出现这个问题,改改就可以了:int i,j;for (j=0;j<L->length;j++){ if(L->data[j]%2!=0){ for(i=j;i<L->length;i++){ L->data[i]=L->data[i+1];} L->length--; \/\/顺序表长度减1 \/\/这里加上一句:j --; \/\/为了继续删除掉移动到...
c语言 数据库 status在这是干什么用的 没有它不能初始化线性表嘛
typedef int Status;就是int 类型。代表标准函数返回。通常#define OK 1 #define ERROR 0 Status 就对应 return OK 或者 return ERROR