| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 640 人关注过本帖
标题:有关数据结构的一些问题
只看楼主 加入收藏
沉思的人
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-4-1
结帖率:0
收藏
已结贴  问题点数:10 回复次数:2 
有关数据结构的一些问题

数据结构单链的程序(含clearlist ,getelem ,listdelete ,listinsert)以及主函数怎么写?例如


#include <iostream.h>
#include "stdlib.h"
#include "stdio.h"
#include "malloc.h"
#define OK 1
#define ERROR -2
#define OVERFLOW -1
typedef int ElemType;
typedef int status;
typedef struct LNode
{
    ElemType data;
    struct LNode *next;
}LNode, *Linklist
Status ClearList(&L)
{

}
Status GetElem_L(Linklist L,int i,Elemtype &e)
{
    struct LNode *p = NULL;
    p=L->next;j=1;
    while(p&&j<1)
    {
        p=p->next;++j;
    }
    if(!p||j>i) return ERROR;
    e=p->data; return OK;
}GetElem_L
Status ListInsert_L(Linklist &L,int i,ElemType e)
{
    p=L;j=0;
    while(p&&j<i-1){p=p->next;++j;}
    if(!p||j>i-1) return ERROR;
    s=(Linklist) malloc (sizeof(LNode));
    s->data=e;s->next=p->next;
    p->next=s;
    return Ok;
}ListInsert_L
Status ListDelete_L(LinkList &L,int i,ElemType &e)
{
    p=L;j=0;
    while(p->next&&j<i-1)
    {
        p=p->next;
        ++j;
    }
    if(!(p->next)||j>i-1) return ERROR;
    q=p->next; p->next=q->next;
    e=q->data;
    free(q);
    return OK;
}ListDelete_L
int main()
{
    LinkList L;
    int i,p,q,s;
   L.GetELem()
       cout>>endl;
   L.ListInsert()
       cout>>endl;
   L.ListDelete()
       cout>>endl;
}


搜索更多相关主题的帖子: 结构 include status 
2013-04-07 21:32
我是大懒虫
Rank: 2
等 级:论坛游民
帖 子:11
专家分:19
注 册:2013-3-30
收藏
得分:10 
typedef int ElemType;
typedef struct LNode
{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;

//初始化
bool InitList_L(LinkList &L)
{
    L=new LNode;
    L->next=NULL;
    return 0;
}

//按序号查找
bool GetElem_L(LinkList L,int i,ElemType &e)
{
    LinkList p;
    p=L->next;
    int j=1;
    while(p&&j<i)
    {
        p=p->next;
        ++j;
    }
    if(!p||j>i) return false;
    e=p->data;
    cout<<e<<endl;
    return 0;
}
//按值查找
LNode *LocateElem_L(LinkList L,ElemType e)
{
    int i=1;
    LinkList p;
    p=L->next;
    while(p&&p->data!=e)
    {
       p=p->next;
       ++i;
       }
    cout<<i<<endl;
    return p;
}
//插入
bool InitInsert_L(LinkList &L,int i,ElemType e)
{
    LinkList p;
    p=L;int j=0;
    while(p&&j<i-1)
    {
        p=p->next;
        ++j;
    }
    if(!p||j>i-1) return false;
    LinkList s;
    s=new LNode;
    s->data=e;
    s->next=p->next;
    p->next=s;
    return 0;
}
//删除

bool ListDetele_L(LinkList &L,int i,ElemType e)
{
    LinkList p;
    p=L;int j=0;
    while(p&&j<i-1)
    {
        p=p->next;
        ++j;
    }
    if(!p||j>i-1) return false;
    LinkList q;
    q=p->next;
    p->next=q->next;
    e=q->data;
    delete q;
    return 0;
}

//前插法创建新链表
void CreateList_F(LinkList &L,int n)
{
    L=new LNode;
    L->next=NULL;
    for(int i=n;i>0;i--)
    {
        LinkList p;
        p=new LNode;
        p->next=L->next;
        cout<<"请输入数据"<<endl;
        cin>>p->data;
        L->next=p;
    }
}



//后插法创建新链表
void CreateList_L(LinkList &L,int n)
{
    L=new LNode;
    L->next=NULL;
    LinkList r;
    r=L;
    for(int i=0;i<n;++i)
    {
        LinkList p;
        p=new LNode;
    cout<<"请输入数据"<<endl;
        cin>>p->data;
        p->next=NULL;
        r->next=p;
        r=p;
    }
}

void put(LinkList L,int n)
{
    LinkList p;
    p=L->next;
    for(int i=0;i<n;i++)
    {   
        cout<<p->data;
         cout << ' ';
        p = p -> next;
    }
    cout<<endl;
}
int main(int argc, char* argv[])
{
    LinkList t;
    InitList_L(t);
//    CreateList_F(t,5);//前插法创建新链表
//    put(t,5);
    CreateList_L(t,5);//后插法创建新链表
    put(t,5);


    ElemType q;
    GetElem_L(t,2,q);

    LocateElem_L(t,3);


    InitInsert_L(t,3,6);
    put(t,6);



    ListDetele_L(t,3,6);
    put(t,5);
    return 0;
}
我是菜鸟,粗略地写了一些,接口不是很标准,还有测试函数太水,不过希望对你有用
2013-04-07 23:53
nuistkevin
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2013-4-15
收藏
得分:0 
猎头职位-软件工程师
岗位职责
1.与世界顶尖的软件工程师共同开发虚拟化云计算产品
2.能独立处理和解决所负责的任务;
3.进行程序单元、功能的测试,查出软件存在的缺陷并保证其质量。
任职资格
1、 211或985高校计算机科学与技术或软件专业,英文流利;
2、 具有很强的学习能力和解决问题的能力;
3、 至少3年以上软件开发经验,精通C语言/C++,热衷于技术专研;
4、 熟练的数据结构知识体系与较强的算法能力,对堆栈、2X树、多X树有一定了解
5、 熟悉Windows, Linux X86/64 操作系统;
6、 熟悉Network configurations and environments;

工作地点:上海
有意者可以发送您的中英文简历至邮箱:
junpingwu@
QQ:2571168815
2013-04-15 11:58
快速回复:有关数据结构的一些问题
数据加载中...
 
   



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

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