| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 418 人关注过本帖
标题:以前学过C++,meow写过C。数据结构要写C,语法能编译,exe停止运行。。实在 ...
取消只看楼主 加入收藏
tangchen
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-11-7
结帖率:0
收藏
已结贴  问题点数:20 回复次数:0 
以前学过C++,meow写过C。数据结构要写C,语法能编译,exe停止运行。。实在不知道错误,求解啊,谢谢,蛮简单的程序,链表的操作啊
#include<stdio.h>
#include<stdlib.h>

#define LEN sizeof(struct LNode)
typedef struct LNode{
    int data;
    struct LNode *next;
}LNode,*LinkList;

void Creat(LinkList L,int n)   
{LNode *p;  
   printf("输入元素:");
   for(int i=n;i>0;--i)
    { p=(LNode*)malloc(sizeof(LNode));
     scanf("%d",&p->next);
     p->next=L->next;
     L->next=p;
 }
}



void initlist(LinkList *L)  //初始化
{
  *L=(LNode*)malloc(sizeof(LNode));
  (*L)->next=NULL;
}

int Getlen(LinkList L)   //求长度
{ int num=0;
      LNode *p;
      p=L->next;
      while(p!=NULL)
      {num++;
       p=p->next;
      }
 
   return (num);
}

LinkList Getelem(LinkList L,int i)   //按序号取元素
  {LNode *p;int pos=1;
    p=L->next;
    if(i<1 || i>Getlen(L)) exit(1);
    while(pos<i)
    {p=p->next;
     pos++;
    }
     return p;
}


LNode *Locate(LinkList L,int x)  //查找运算
{LNode *p;
    p=L->next;
    while(p!=NULL && p->data!=x)
    p=p->next;
  return p;
}

void Inselem(LinkList L,int i,int x)  //插入
{ LNode *p,*q,*s;
    int pos=1;
    p=L;
    if(i<1 || i>Getlen(L)+1) exit(1);
    s=(LNode*)malloc(sizeof(LNode));
    s->data=x;
    while(pos<=i)
    { q=p;p=p->next;
      pos++;
    }
    s->next=q->next;
    q->next=s;
  
}




void Delelem(LinkList L,int i)  //删除
{int pos=1;
    LNode *q=L;LNode *p;
    if(i<1 || i>Getlen(L)) exit(1);
    while(pos<i)
    {q=q->next;
     pos++;
    }
    p=p->next;
    q->next=p->next;
    free(p);
   
}


void print(LinkList L)  //输出表
{
    LNode *t;
    while(t!=NULL)
       {  
          printf("%4d",t->data);
          t=t->next;
       }  
       printf("\n");
}


void main()
{
  int b=0,c=0,e=0,m1=0,m2=0,z1=0,v1=0,a;
 LinkList L;
  printf("输入元素个数:");
  scanf("%d",&a);
  Creat(L,a);
  printf("输出该表:");
  print(L);
 
    b=Getlen(L);
    printf("%s%d","线性表的长度为:",(b+1),"\n");

    printf("输入所取元素的序号:");
    scanf("%d",&c);
    printf("%s%d","所取元素为",Getelem(L,c));
   
    printf("输入要查找的元素:");
    scanf("%d",&z1);
    printf("%s%d","所取元素的下标为:",Locate(L,z1));


   printf("输入要插入的位置及元素:");
   scanf("%d%d",m1,m2);
   Inselem(L,m1,m2);
   printf("输出插入后的表");
   print(L);

   printf("输入要删除的元素的序号:");
   scanf("%d",&v1);
   Delelem(L,v1);
   printf("输出删除后的表");
   print(L);


}
搜索更多相关主题的帖子: 元素 include 
2011-11-07 00:22
快速回复:以前学过C++,meow写过C。数据结构要写C,语法能编译,exe停止运行。。 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016573 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved