用C语言编写程序实现顺序表的插入操作,并且从键盘读取元素给顺序表初始化。(要求用VC++工具编写)

供稿:hz-xin.com     日期:2025-01-13
使用C语言编写程序,实现顺序表的基本运算——插入和删除。

typedef struct
{
int *elem;
int length;
int listsize;
} Sqlist;
status Create_sq(Sqlist *L,int n)
{
int i;
L->elem=(int*)malloc(100*sizeof(int));
if(!L->elem) return 0;
for(i=0;i<n;i++)
scanf("%d",&(L->elem[i]));
L->length=n;
L->listsize=100;
return 1;
}
status Listinsert_sq(Sqlist *L,int i,int e)
{
int *q,*p,*newbase;
if(iL->length+1) return 0;
if(L->length>=L->listsize)
{
newbase=(int*)realloc(L->elem,(L->listsize+10)*sizeof(int));
if(!newbase) exit(-2);
L->elem=newbase;
L->listsize+=10;
}
q=&(L->elem[i-1]);
for(p=&(L->elem[L->length-1]);p>=q;--p)
*(p+1)=*p;
*q=e;
++L->length;
return 1;
}
int main()
{
Sqlist L1;
int n,a;
int i,e;
printf("
please input the number of data:
");
scanf("%d",&n);
if(Create_sq(&L1,n)==1)
{
scanf("%d%d",&i,&e);
a=Listinsert_sq(&L1,i,e);
if(a==1)
printf("insert success
");
else printf("insert false
");
printf("the list elements are:
");
for(i=1;i<=L1.length;i++)
{
printf("%d",L1.elem[i-1]);
}

}
return 0;
}

#include #define LIST_INIT_SIZE 10#define LISTINCREMENT 10#define ERROR 0typedef struct{ int *elem; int length; int listsize;} SqList;void InitList_Sq(SqList *l){ l->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); if(!l->elem) exit(0); l->length=0; l->listsize=LIST_INIT_SIZE;}int InList(SqList *l){ int *p,*newbase; p=l->elem; while(1) { for(;pelem+l->listsize;p++) { scanf("%d",p);if(*p==-1) break;l->length++; } if((p==l->elem+l->listsize)) { newbase=(int *)realloc(l->elem,(l->listsize+LISTINCREMENT)*sizeof(int)); p=l->elem+l->length; l->listsize=l->listsize+LISTINCREMENT; if(!l->elem) return ERROR; } if(*p==-1) break; } return 1; }void PrList(SqList *l){ int *p,i; p=l->elem; for(;pelem+l->length;p++) printf("%d ",*p);}int ListInsert_sq(SqList *l,int i,int e){ int *newbase,*p,*q; if(il->length) return ERROR; if(l->length==l->listsize) { newbase=(int *)realloc(l->elem,(l->listsize+LISTINCREMENT)*sizeof(int)); if(!newbase) return ERROR; l->elem=newbase; l->listsize+=LISTINCREMENT; } q=l->elem+i-1; for(p=l->elem+l->length-1;p>=q;p--) *(p+1)=*(p); *q=e; l->length+=1; return 1;}int ListDelet_sq(SqList *l,int i){ int *p,e; if((il->length)) return ERROR; p=l->elem+i-1; e=*p; for(;pelem+l->length-1;p++) *p=*(p+1); l->length--; printf("要删除的元素是:%d
",e); return 1;}void main(){ int i,j,n; char a; SqList la; InitList_Sq(&la); printf("请输入顺序表中的元素:
"); if(!InList(&la)) return ERROR; do { printf("请输入需要插入元素的位置及元素:(a,b)
"); scanf("%d,%d",&i,&j); if(!ListInsert_sq(&la,i,j)) return ERROR; printf("是否还需要插入元素?(N/Y)"); getchar(); scanf("%c",&a); if(a=='N'||a=='n') break; }while(1); do { printf("请输入需要删除元素的位置:
"); scanf("%d",&i); if(!ListDelet_sq(&la,i)) return ERROR; printf("是否还需要删除元素?(N/Y)"); getchar(); scanf("%c",&a); if(a=='N'||a=='n') break; }while(1); printf("最后的顺序表为:
"); PrList(&la); }

在你的基础上改的
#include<stdio.h>
#include<stdlib.h>

#define LISTSIZE 100
#define ADD 10
typedef struct {
int *elem;
int length;
int listsize;
}List;//定义线性表的结构体
void SqList(List &L)
{

//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",&L.elem[i]);
L.length =0;//如果是初始化,那么长度就是0
}//初始化线性表

int InsertSq(List &L,int i,int e)
{
int *p=NULL, *q=NULL;//所有变量的定义都必须置前
if(i<0||i>L.length+1) return 0;
if(L.length>=L.listsize)
{
int *newbase;
newbase=(int *)realloc(L.elem,(L.listsize+ADD)*sizeof(int));
if(!newbase) exit(0);
L.elem=newbase;
L.listsize+=ADD;
}

q=&L.elem[i-1];
for(p=&L.elem[L.length-1];p>=q;--p)
*(p+1)=*p;
*q=e;
L.length++;
return 1;
}//在线性表的第i个元素之前插入元素e

void PrintList(List L)
{
printf("顺序表中的元素:\n");
for(int k=0;k<=L.length-1;k++)
printf("%5d",L.elem[k]);
printf("\n");
}

void main()
{

//void SqList(List &L);
//int InsertSq(List &L,int i,int e);使用之前已经定义了,可以不用函数说明
List L;
int i,e; //函数调用前,变量必须定义

SqList(L);
printf("输入顺序表中元素的个数:");
scanf("%d",&i);

printf("请输入元素:");
for(int j=1;j<=i;j++)
{
scanf("%d",&e);
InsertSq(L,j,e);
}

PrintList(L);
printf("输入插入的元素及其位置:");
scanf("%5d%5d",&e,&i);
InsertSq(L,i,e);
PrintList(L);
}

用C语言编写程序实现顺序表的插入操作,并且从键盘读取元素给顺序表初...
void SqList(List &L){ \/\/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...

求表插入排序的C语言代码,数据结构的,能在VC里运行的。
int length; \/* 顺序表长度 *\/ }SqList; \/* 顺序表类型 *\/ void InsertSort(SqList *L){ \/* 对顺序表L作直接插入排序。*\/ int i,j;for(i=2;i<=(*L).length;++i)if LT((*L).r[i].key,(*L).r[i-1].key) \/* "<",需将L.r[i]插入有序子表 *\/ { (*L).r[0]=...

使用C语言编写程序,实现顺序表的基本运算——插入和删除。
{ int *elem;int length;int listsize;} Sqlist;status Create_sq(Sqlist *L,int n){ int i;L->elem=(int*)malloc(100*sizeof(int));if(!L->elem) return 0;for(i=0;i<n;i++)scanf("%d",&(L->elem[i]));L->length=n;L->listsize=100;return 1;} status Listinsert_s...

求在顺序表中插入一个数据元素的源代码 用C语言编的!
include <stdio.h> define MAX 100 typedef struct { int data[MAX];int len;}sqlist;void insert(sqlist *L, int k, int a) \/\/在顺序表L中第k个元素之前插入一个元素a。{ int i;for(i=L->len-1; i>=k; i--)L->data[i+1] = L->data[i]; \/\/从第k+1个元素开始...

是C语言中建立顺序表的程序
建立方法很多,线性表是顺序表的顺序存储结构,这里我给你写个简单的例子参考一下,只要理解了,怎么写都不会错:具体代码如下:include <stdio.h> typedef struct{ int data[100];int length;}Seqlist;\/\/定义Seq这个新的数据类型 void creat(Seqlist &L);\/\/建立线性表 void show(Seqlist L);\/...

...设顺序表L是一个递增有序表,试写一算法将x插入L中,并使L仍是一个...
n;printf("请为该链表输入元素的个数n:");scanf("%d",&n);create(L,n);print(L);printf("请输入要插入的元素e:");scanf("%d",&e);insert(L,e);printf("插入后:");print(L);printf("请输入要插入的元素e:");scanf("%d",&e);insert(L,e);printf("插入后:");print(L);...

用C语言实现线性表的顺序存储(创建,插入,删除和查找)
\/\/功能:链表反转顺序\/\/参数:head链表头结点指针{ STUDENT *ptemp,*p1; if(head==NULL) { return 0; } p1=head;\/\/p1使之永远指向排好序的第一个结点,初值为head,head使之永远是已经排好序的最后一个结点 while(head->next!=NULL)\/\/本次循环使ptemp排好序 { ptemp=head->next;\/\/ptemp指向未排好序...

求高人帮编一个有关顺序表的C语言程序,望速回,非常感谢
我写了一个完整的。程序试运行正常。运行效果如下图。希望对您有帮助!include"stdio.h"include "stdlib.h"int charu(int a[]){ int n,i=0;while(a[i]!=0)i++;printf("\\n该数列长度为%d。\\n",i);printf("请输入要插入元素的位置n(n<=%d)(在第%d位插入即在末尾增加一个元素):...

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!=...

顺序表和链表的基本操作,用C语言实现!
L.elem[i-1]=e;\/\/插入e L.length=L.length+1;\/\/表长加1 } \/\/建立递增有序的顺序表 void CreateList_Sorted(SqList &L){int i,num;ElemType e;L.length=0;printf("Create a sorted list,Input the length of the list\\n");scanf("%d",&num);printf("Input the data %d numbers...