数据结构报告
题目:1、请编程实现一个普通线性表或栈或队列的维护程序,包括创建、插入、删除、遍历功能。
程序流程图:
具体程序:
#include<>
#include<>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define OK 1
typedef struct
{
int *elem;
int length;
int listsize;
}Sqlist;
Sqlist L;
int InitList_Sq(Sqlist &L)
{
=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
if(!)exit(0);
=0;
=LIST_INIT_SIZE;
return OK;
}//InitList_Sq
int ListInsert_Sq(Sqlist&L,int i,int e)//插入
{
//int i,int e;
int *newbase;
int *q,*p;
if(i<1||i>+1)
return -1;
if(>=)
{
newbase=(int*)realloc(,(+LISTINCREMENT)*sizeof(int));
if(!newbase)exit(0);
=newbase;
+=LISTINCREMENT;
}
q=&([i-1]);
for(p=&([-1]);p>=q;--p)*(p+1)=*p;
//插入位置及以后的元素右移
*q=e;//插入e
++;//表长增1
return OK;
}//ListInsert_Sq
int ListDelete_Sq(Sqlist&L,int i)
{
int *p,*q;
if(i<1||i<)
return -1;
p=&[i-1];
q=+-1;
for(p;p<=q;p++)
*p=*(p+1);
--;
return OK;
}//ListDelete_Sq删除
int main()
{
int k,i,e;
printf("请输入你想执行的功能\n");
printf("输入1执行创建功能\n输入2执行插入功能\n输入3执行删除功能\n输入4执行遍历功能\n输入0退出\n");
do
{
scanf("%d",&k);
switch(k)
{
case 1:InitList_Sq(L);break;
case 2:
{
printf("请输入插入位置及值\n");
scanf("%d,%d",&i,&e);
ListInsert_Sq(L,i,e);
}break;
ca
数据结构作业 来自淘豆网www.taodocs.com转载请标明出处.