| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 658 人关注过本帖, 1 人收藏
标题:大神求解线性表删除问题
只看楼主 加入收藏
s18270722463
Rank: 2
等 级:论坛游民
帖 子:53
专家分:28
注 册:2012-6-11
结帖率:62.5%
收藏(1)
已结贴  问题点数:20 回复次数:9 
大神求解线性表删除问题
#include <stdio.h>
int num=0;//num用来计算数组中数的个数,再插入时就num++,删除时就num--

void print(int a[100])//打印整个数组的函数,只带一个参数,默认数组长度为num
{
    for(int i=0; i<num; i++)
        printf("%d", a[i]);
    printf("\n");
}

void print(int a[100], int length)//打印整个数组的函数,带两个参数,数组长度为length
{
    for(int i=0; i<length; i++)
        printf("%d", a[i]);
    printf("\n");
}

void insert(int a[], int position, int value)//插入函数,a为数组,函数功能:在指定的
//位置position之前插入值value
{
    int i,j;
    i=position;//获取位置
    j=value;//获取插入值
    num++;
    for(int k=num-1;k>=i;k--)
    {
        a[k]=a[k-1];
    }
    a[i-1]=j;
}

int find(int a[],int key)//查找函数,a为数组,key为要查找的数,函数功能"
//在数组a中查找key,如果找到返回在数组中的下标,找不到返回-1
{
    int value=key;
    int result=0;
    for(int i=0;i<num;i++)
    {
        if (a[i]==value)
            break;
    }
    if(i!=num)
        return i;
    else
        return -1;
}
void del(int a[],int position){
int p=position;
for(int j=num-1;j>=p;j--)
{a[j-1]=a[j];}
num--;}
void main()
{
    int a[100]={0};
    int position=0,value=0,find_key=0;
    printf("请输入数据个数:\n");
    scanf("%d",&num);
    for(int i=0;i<num;i++)
    {
        printf("请输入第%d个整数:",i+1);
        scanf("%d",&a[i]);
    }
    print(a);
    printf("请输入要删除的位置:");
    scanf("%d",&position);
    del(a,position);
    print(a);}
输入 1 2 3 4
删除怎么会出现  144
删除哪里错了


搜索更多相关主题的帖子: void position include insert 
2013-03-21 13:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:2 
关注

DO IT YOURSELF !
2013-03-21 14:00
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:2 
从要删除结点开始从左向右扫描,

www.qunxingw.wang
2013-03-21 14:57
s18270722463
Rank: 2
等 级:论坛游民
帖 子:53
专家分:28
注 册:2012-6-11
收藏
得分:0 
为什么不能从又向左呢
2013-03-21 17:33
s18270722463
Rank: 2
等 级:论坛游民
帖 子:53
专家分:28
注 册:2012-6-11
收藏
得分:0 
int Pop(LinkStack top, int *element)//注意参数,element是引用形式参数,是传地址
//此函数是出栈函数,用element获取每次出栈的值
{
    if(top->next==NULL)//3、此处空了一行代码
        return FALSE;//栈为空时不能出栈,返回0
    StackNode *temp = top->next;//temp指向栈顶的元素
    *element = temp->data;//element保存元素值
    //4、此处空了两行代码
    return TRUE;
这后面两行代码怎么补
求赐教
2013-03-21 18:21
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
收藏
得分:4 
线性表的删除,标准点不错啊。比如按数据结构讲的来。高手随便

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-03-21 19:05
cherish——
Rank: 1
等 级:新手上路
帖 子:25
专家分:1
注 册:2012-8-18
收藏
得分:1 
为什么我看到有两个函数名字相同呢??
2013-03-21 20:54
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:10 
回复 4楼 s18270722463
因为要覆盖删除的元。你原来的只是反复把最后值传到要删除的地方,
程序代码:
void del(int a[],int position)
{
int p=position;
for(int j=p;j<num;j++)
{a[j]=a[j+1];}
num--;
}

www.qunxingw.wang
2013-03-21 20:57
qq384200403
Rank: 2
等 级:论坛游民
帖 子:35
专家分:39
注 册:2013-3-1
收藏
得分:1 
就按顺序表进行删啊
2013-03-21 21:50
s18270722463
Rank: 2
等 级:论坛游民
帖 子:53
专家分:28
注 册:2012-6-11
收藏
得分:0 
哦,知道了,谢谢
2013-03-21 22:05
快速回复:大神求解线性表删除问题
数据加载中...
 
   



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

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