1、3 在链表中查找第i个元素,i合法返回元素值,否则,返回FALSE;4 在链表中查找与一已知字符相同的第一个结点,有则返回TRUE,否则,返回FALSE;5 在链表中按照有序方式插入一已知字符元素;6 在线性表中删除第i个结点;7 计算链表的长度。五、实验内容一步骤:#includestdlib.h#define MAX 20typedef int ElemType;typedef struct ElemType elemMAX; int last;SeqList;void InitList(SeqList *L) L-last=-1;void PrintList(SeqList *L) in
2、t i; printf(n现在的数据为:); for(i=0;ilast;i+) printf(%d ,L-elemi); void CreatList(SeqList *L) ElemType e; int i=0;n输入数据(-1退出): scanf(%d,&e); while(e!=-1) if(ielemi=e;last=i; i+; else printf(n表满! scanf( void Locate(SeqList *L, int i,ElemType e) i=0; while (ielemi!=e) i+; if (ilast)n%d在顺序表中第%d个位置上。,e,i+1);
3、 elsen没有此数!void InsList(SeqList *L, int i, ElemType e) int k; if(iL-last+2)n插入位置i值不合法 else if(L-last=MAX-1)n表已满无法插入 else for(k=L- k=i-1; k-)elemk+1=L-elemk;elemi-1=e;last+; PrintList(L);void DelList(SeqList *L,int i,ElemType *e)last+1)n删除位置不合法! *e=L-elemi-1; for(k=i; k L-last=L-last-1;void SumList(S
4、eqList *L) int j,sum=0; for(j=0;jelemj;所有元素之和:,sum);void menu()n*菜单*n 1.创建任意整数线性表n 2.打印(遍历)线性表n 3.查找元素n 4.插入元素n 5.删除元素n 6.所有元素之和n 7.退出n*void main() int flag=0; SeqList *L; L=(SeqList*)malloc(sizeof(SeqList); InitList(L); menu(); while(!flag)nn请输入你的选择:i); switch(i) case 1: CreatList(L); break; case 2
5、: PrintList(L); case 3:输入要查找的数值: scanf( Locate(L,i,e); case 4:输入插入位置和数据值(a b):%d%di,& InsList(L,i,e); case 5:输入要删除元素的位置: DelList(L,i,& case 6: SumList(L); case 7: flag=1;六、实验内容一测试数据与实验结果: 七、实验内容二步骤:malloc.h#define MAX 15#define TURE 1#define FALSE 0typedef char ElemType;typedef struct Node char date
6、; struct Node * next;Node,*LinkList;void InitList(LinkList *L) *L=(LinkList)malloc(sizeof(char); (*L)-next=NULL;void PrintfLink(LinkList L) LinkList p; p=L-next;链表为: while(p!=NULL)%c ,p-date); p=p-void Create(LinkList L) LinkList s,r; char c; int flag=1; int n; r=L;元素个数:n); if(n超出限定长度! 输入字符(以#键结束):
7、while(flag) %cc); if(c!=#) s=(Node*)malloc(sizeof(char); s-date=c; r-next=s; r=s; else flag=0; r-next =NULL;void Order(LinkList L) Node *r,*q,*p; for(r=L-r-next!=NULL;r=r-next ) p=r; for(q=r-q;q=q- if(q-date)date) p=q; if(p!=r) c=r-date;date=p- p- PrintfLink(L);void Get(LinkList L, int i, ElemType *
8、e) int j; Node *p; p=L; j=-1; while (p-=NULL)&(j j+; *e=p-date ; if(i=j)第%d个元素为:,i,*e);FALSEvoid Locate(LinkList L, ElemType e) int i=1;next ; while(p&p-date!=e) i=i+; if(!p)FALSEnTRUEn该元素在第%d个位置!,i-1);void InsList(LinkList L,int i,ElemType e) Node *p,*s; int k=0;=NULL&kdate=e;next=p- p- Order(L);vo
9、id DelList(LinkList L,int i,ElemType *e) Node *p,*r; j=0; while(p-i-1) j+; if(p-=NULL) p-next- r=p- *e=r-删除第%d个元素:%cn删除结点的位置i不合理!void ListLength(LinkList L)int j=0;单链表的长度:,j);n 1.创建任意字符型单循环链表n 2.打印(遍历)该链表n 3.查找第i个元素n 4.查找与一已知字符相同的元素n 5.插入元素n 6.删除第i个结点n 7.计算链表的长度n 8.退出 LinkList L; L=(LinkList)malloc(sizeof(char); InitList(&L);nn请输入你的选择(18): Create(L); Order(L);输入要查找的第i个元素: Get(L,i,&输入查找的元素: rewind(stdin); Locate(L,e);输入插入的元素:输入要删除第几个结点: ListLength(L); case 8:八、实验内容二测试数据与实验结果:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1