#include <stdio.h> #include <iostream> #include <malloc.h> #define Max 10 using namespace std; typedef struct{ char data[Max]; int length; }sqlist; void initlist(sqlist *&l) //线性表初始化*&代表可以对l的地址改变 { l=(sqlist *)malloc(sizeof(sqlist)); l->length=0; } void easyinsert(sqlist *l) { char c=getchar(); if(l->length>Max) { return ; } l->data[l->length++]=c; } void display(sqlist l) { for(int i=0;i<l.length;i++) { cout<<l.data[i]; } cout<<endl; } int leng(sqlist l) { cout<<l.length<<endl; return l.length; } void getelem(sqlist l,int n) { if(n<1||n>l.length) { return ; } char e; e=l.data[n-1]; cout<<e<<endl; } void weizhi(sqlist l,char c) { for(int i=0;i<l.length;i++) { if(c==l.data[i]) { cout<<i+1<<"\n"; } } } void charu(sqlist *l,char c,int n) { if(n<1||n>l->length) { return ; } l->length++; int i; for(i=l->length;i>n;i--) { l->data[i-1]=l->data[i-2]; } l->data[i-1]=c; } void shanchu(sqlist *l,int i) { if(i<1||i>l->length) { return ; } l->length--; for(int j=i-1;j<l->length;j++) { l->data[j]=l->data[j+1]; } } int main() { sqlist *l; initlist(l); easyinsert(l); easyinsert(l); easyinsert(l); easyinsert(l); easyinsert(l); display(*l); leng(*l); getelem(*l,4); weizhi(*l,‘c‘); charu(l,‘g‘,5); display(*l); shanchu(l,3); display(*l); }
初始化必须用*&l,其余如果对于线性表有改变则调用指针
原因:https://www.cnblogs.com/xiang-little/p/5840809.html
void initlist(sqlist *&l) //线性表初始化*&代表可以对l的地址改变
{
l=(sqlist *)malloc(sizeof(sqlist));
l->length=0;
}
原文:https://www.cnblogs.com/BananaMan/p/11443910.html