分享

数据结构---链表

 昵称105387 2009-06-13

#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);}}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多