注意输入时,中间不能有空格,如输入:12345回车0,输出:12045
已改(后面有注释):
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 50
typedef char ElemType
typedef struct
{ ElemType elem[MaxSize]
int length
}SqList
SqList *InitList(void)
{
SqList *L = NULL
L = (SqList *) malloc (sizeof(SqList))
L->length = 0
return L
}
void DispList(SqList *L)
{
int i
if (L->length == 0)
{
return
}
for (i=0i<L->lengthi++)
{
printf("%c", L->elem[i])
}
printf("\n")
}
void ListInsert(SqList * L, int i, ElemType e)
{
int j
if ((i <1) || (i >L->length))
{
return
}
i--
for (j=L->lengthj>ij--)
{
L->elem[j] = L->elem[j-1]
}
L->elem[i] = e
L->length++
}
void ListDelete(SqList * L, int i)
{
int j
if ((i <1) || (i >L->length))
{
return
}
i--
for (j=ij<L->length-1j++)
{
L->elem[j] = L->elem[j+1]
}
L->length--
}
int main(void)
{
SqList *L = NULL
int i
char f
L = InitList()//去掉&L,加上L =
printf("Please enter char:\n")
for(i=0i<5i++)
{
scanf("%c",&(L->elem[L->length++]))
}
fflush(stdin)//防止回车字符被下个scanf吃掉
printf("\n")
printf("Please a enter char:\n")
scanf("%c",&f)
ListInsert(L,4,f)
printf("\n")
ListDelete(L,3)
DispList(L)
}
#include<stdio.h>#include<stdlib.h>
#define MAXSIZE 100
typedef struct{
int data[MAXSIZE]
int length
}SeqList
//初始化
SeqList InitList(){
SeqList L
L.length=0
return L
}
//插入元素
SeqList Insert(SeqList &L,int x){
if(L.length==MAXSIZE){
printf("表满")
exit(0)
}
L.length++
L.data[L.length]=x
return L
}
//删除第i个元素
SeqList Delete(SeqList &L,int i){
if(i<1||i>L.length){
printf("不存在第%d个元素",i)
exit(0)
}
int j
for(j=ij<=L.length-1j++){
L.data[j]=L.data[j+1]
}
L.length--
return L
}
//定位某个元素
int locate(SeqList L,int x){
int i
i=1
while(i<=L.length&&L.data[i]!=x){
i++
}
if(i<=L.length)
return i
else
return 0
}
SeqList Bingji(SeqList La,SeqList Lb,SeqList Lc){
int i,j
for(i=1i<=La.lengthi++){
for(j=1j<=La.lengthj++){
if(La.data[i]==Lb.data[j]){
Lc=Insert(Lc,La.data[i])
}
}
}
return Lc
}
//打印数组
void Display(SeqList L){
int i
for(i=1i<=L.lengthi++){
printf(" %d ",L.data[i])
}
printf("\n")
}
这个是基于数组的线性表,有插入和删除的 *** 作,如有不懂可追问。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)