建立一有序的順序表,并實作下列操作:1.把元素x插入表中并保持有序;2.查找值為x的元素,若找到將其洗掉;
3.輸出表中各元素的值
#define MAXSIZE 100
#define OK 1
#define ERROR 0
#include<stdio.h>
typedef int ElemType
typedef struct
{
ElemType elem[MAXSIZE];//線性表占用的陣列空間
int last;//記錄線性表中最后一個元素在陣列elem[]中的位置(下標值),空表置為-1.
}SeqList;3
int Inslist(SeqList *L,ElemType e)//插入元素
{
int i;
if((i<1||(i>L->last+2))
{
printf("插入位置不合法!\n");
return(ERROR);
}
if(L->last=MASIZE-1)
{
printf("表已滿,無法插入\n");
return(ERROR);
}
for (i=L->last;i>=0&&e<L-elem[i]>;i--)
L->elem[i+1]=L->elem[i];
L->elem[i+1]=e;
L->last++;
return OK;
}
int DelList(SeqList *L,ElemType e)//查找元素并洗掉
{
int k,i;
k=0;
while(k<=L-last&&L->elem[k]!=e)
k++;
if (k<=l->last)
{
for (i=k+1;i<=L->last;i++)
L->elem[i-1]=l->elem[i];
L->last--;
return OK;
}
else
printf("此元素不在表中!\n");
return ERROR;
}
void output(SeqList *L)//輸出元素
{
int i;
for (i=0;i<L->last; i++)
{
printf ("%d",L.elem[i]);
}
printf ("\n");
}
void main()
{
SeqList *list,list 1;
int i,n,m;
list=&list 1;
printf("請輸入資料:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&list->elem[i]);
list->last=n-1;
output(list);
printf("請輸入要插入的值:\n");
scanf("%d",&m);
InList(list,m);
output(list);
printf("請輸入要洗掉的值:\n");
scanf("%d",&m);
DelList(list,m);
output(list);
}
uj5u.com熱心網友回復:
第一個typedef那一行還沒缺分號,下面一個定義分號后面有個3。樓主仔細再仔細檢查,不要讓我們當你的小秘轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/133740.html
標籤:疑難問題
