#include<stdio.h> #include<malloc.h> typedef struct listnode{ char data; struct listnode *next; }listnode,*linklist; linklist head;
void creat(int len) {linklist p,q; int i; char ch; printf("请输入字母"); head=(linklist)malloc(sizeof(listnode)); head->next=NULL; q=head; for(i=0;i<=len;i++) {p=(linklist)malloc(sizeof(listnode)); scanf("%c",&ch); p->data=ch; p->next=q->next; q->next=p; q=q->next;} p=head->next; printf("链表为 : "); while(p) {printf("%c",p->data); p=p->next;} }
void del(int pose) {int i; linklist p,q; p=head; for(i=1;i<pose+1;++i) p=p->next; q=p->next; q=q->next; p->next=q; printf("链表为:"); p=head->next; while(p) {printf("%c ",p->data); p=p->next; } free(p); }
void insert(char ch,int pose) { int i; linklist p,q,s; p=head; for(i=1;i<pose+1;++i) {p=p->next; s=p->next; q=(linklist)malloc(sizeof(listnode)); q->data=ch; q->next=s; p->next=q; p=head->next;} printf("插入后的字符链表为:"); while(p) {printf("%c ",p->data); p=p->next; }}
void main( ) {int c,len,x; char y,d; printf("请输入链表长度:"); scanf("%d",&len); creat(len); printf("\n增加结点输入a,删除结点输入d");getchar(); scanf("%c",&y); if(y=='a') {printf("请输入要插入的字母和位置:");getchar(); scanf("%c,%d",&d,&x); insert(d,x);} else if(y=='d') {printf("请输入要删除的字母:\n");getchar(); scanf("%c",&c); del(c);}}
|