小甲鱼 发表于 2012-12-25 20:39:02

链表的基本操作(线性表)

题目:编写一个程序,创建一个单链表,需要完成以下要求

1. 用户输入一组整数,以0作为结束标志,将这一组整数存放在链表中(0不存放),并打印该链表中的值。

2. 删除第5个元素,并打印删除后的结果。

3. 手动在内存释放掉该链表。


代码清单(请自觉完成后回复可见):


**** Hidden Message *****

laomao_134 发表于 2012-12-25 21:56:26

下来看看学习学习

魁拔 发表于 2012-12-26 08:37:12

看哪看哪看哪

YYB 发表于 2012-12-26 11:36:01

回复下来看看啊

506076894 发表于 2012-12-28 15:34:43

我要看啊甲鱼哥哥好帅

监守者阁下 发表于 2012-12-29 16:05:54

gggggoood!!!

eeeeelin 发表于 2013-1-7 13:06:32

下载回去看看!!谢谢了!!

喜欢散步 发表于 2013-1-31 02:29:55

看看怎么写的

pqx112 发表于 2013-1-31 10:07:43

瞄一下,解迷茫!

刘金伟 发表于 2013-2-2 16:21:29

好费劲的说

sbwcwusi 发表于 2013-2-17 11:06:53

下来看看学习学习

学C 发表于 2013-2-23 19:07:57

look look{:5_91:}

斯人独憔悴 发表于 2013-2-28 09:58:28

谢谢,太感谢啦:P

罚站的树/aiq 发表于 2013-3-14 21:15:29

太 感 谢 啦

方嘉伟_mAm 发表于 2013-3-15 13:22:03

看下代码 ~~~

C_家俊 发表于 2013-3-21 21:00:59

:'(觉得数据结构蛮难的!

思忆 发表于 2013-3-29 13:41:37

本帖最后由 思忆 于 2013-3-29 18:01 编辑


#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
//////////////////////////////////////////////////////////////////////////
#define STD struct std
#define MC (STD *)malloc(sizeof(STD))
//////////////////////////////////////////////////////////////////////////
struct std
{
    int num;
    double score;
    struct std *next;
};
void *malloc();
STD *input();
STD *Delete(STD *temp);
//////////////////////////////////////////////////////////////////////////
void main()
{   
    int i=0;
    char order;
    STD *temp;
    do
    {
      printf("命令介绍\ninput 输入 | delete 删除 | exit 退出\n请输入命令:");
      scanf("%s",&order);
      if (strcmp(order,"input") == 0)
      {
            temp = input();
            i++;
      }
      else if (strcmp(order,"delete") == 0)
      {
            if (i != 0)
            {
                temp = Delete(temp);
            }
            else
            {
                printf("链表不存在!\n");
            }
      }
      else if (strcmp(order,"exit") == 0)
      {
            break;
      }
      else
      {
            printf("输入错误!请重新输入!\n");
      }
    } while ( strcmp(order,"exit") != 0);
}
//////////////////////////////////////////////////////////////////////////
STD *input()
{
    STD *head,*p1,*p2,*temp;
    head= temp = p1 = MC;
    printf("请输入学号:");
    scanf("%d",&p1->num);
    if ( p1->num != 0 && p1->num > 0 && p1->num < 9999)
    {
      while (p1->num != 0 && p1->num > 0 && p1->num < 9999)
      {
            printf("请输入成绩:");
            scanf("%lf",&p1->score);
            p2 = p1;
            p1 = MC;
            p2->next = p1;
            printf("请输入学号:");
            scanf("%d",&p1->num);
      }
      p2->next = NULL;
      if (p2->num != 0 && p2->num > 0 && p2->num < 9999)       //输入0,即为退出
      {
            do
            {
                printf("%d\t%5.1f\n",head->num,head->score);
                head = head->next;
            } while (head != NULL);
      }
    }
    return temp;
}
STD *Delete(STD *temp)
{
    int num,i=0;
    STD *head,*p;
    head = temp;
    do
    {
      printf("%d\t%5.1f\n",head->num,head->score);
      head = head->next;
    } while (head != NULL);
    printf("请输入删除对象:");
    scanf("%d",&num);
    p = head = temp;
    if (num != 0 && num > 0 && num < 9999 )
    {
      while(head != NULL)
      {
            if (num == head->num)
            {
                if ( head == temp)
                {
                  head = head->next;
                  free(p);
                  p = head;
                  break;
                }
                else
                {
                  p->next = head->next;
                  free(head);
                  p = head = temp;
                  break;
                }
            }
            else
            {
                if (i != 0)
                {
                  p = p->next;
                }
                printf("没有输入的数字....\n");
                head = head->next;
                i++;
            }
      }
      
      do
      {
            printf("%d\t%5.1f\n",head->num,head->score);
            head = head->next;
      } while (head != NULL);
    }
    return p;
}


heart_win 发表于 2013-4-5 23:32:31

谢谢分享!!

訐尐 发表于 2013-4-8 23:15:30

...无回帖,不论坛,这才是人道。

夏芝麻 发表于 2013-4-14 21:06:18

强烈支持楼主ing……:handshake
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 链表的基本操作(线性表)