当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 一段C 线性表 链式单向存储
帖子发表于 : 2008-03-24 23:09 
头像

注册: 2006-09-21 14:28
帖子: 2376
送出感谢: 0 次
接收感谢: 0 次
代码:
// unidirectional link store type of linear list
// 线性表单向链式存储

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct ull_node
{
  char name[strlen("爱新觉罗")];
  struct ull_node *next_node;
} ull_node, *ulink_list;

ulink_list create_list(ulink_list head)
{
  int i;
  ulink_list new_node, tmp;
 
  //char tmp[2];
  char tmp_name[strlen("爱新觉罗")];
 
  i = 1;
 
  printf("\n 输入姓名,输入数字 0 结束 \n");
 
  printf("\n %d. ", i++);
  fflush(stdin);
  scanf("%s", tmp_name);
 
  //tmp = (ulink_list)malloc(sizeof(ull_node));
  tmp = head;
 
  while  (strcmp(tmp_name, "0") != 0)
  {
    new_node = (ulink_list)malloc(sizeof(ull_node));
   
    strcpy(new_node->name, tmp_name);
    new_node->next_node = NULL;
     
    tmp->next_node = new_node;
    tmp = new_node;
   
    printf("\n %d. ", i++);
    fflush(stdin);
    scanf("%s", tmp_name);
  }
   
  return head;
}

void print_list(ulink_list head)
{
  ulink_list tmp_node;
  int i = 0;
 
  tmp_node = head->next_node;
  while (tmp_node != NULL)
  {
    i++;
    printf("\n %d. %s ", i, tmp_node->name);
    tmp_node = tmp_node->next_node;
  }
   
  printf("\n");
  printf("\n 按下回车继续 \n");
  getchar();
 
}

ulink_list insert_list(ulink_list head)
{
  int i;
  int boollock;
  ulink_list new_node, tmp;
 
  //char tmp[2];
  char tmp_name[strlen("爱新觉罗")];
 
  i = 1;
  boollock = 0;
 
  printf("\n 输入姓名,输入数字 0 结束 \n");
 
  printf("\n %d. ", i++);
  fflush(stdin);
  scanf("%s", tmp_name);
 
  //tmp = (ulink_list)malloc(sizeof(ull_node));
  tmp = head;
 
  while  (strcmp(tmp_name, "0") != 0)
  {
    new_node = (ulink_list)malloc(sizeof(ull_node));
   
    strcpy(new_node->name, tmp_name);
    new_node->next_node = NULL;
     
    tmp->next_node = new_node;
    tmp = new_node;
   
    printf("\n %d. ", i++);
    fflush(stdin);
    scanf("%s", tmp_name);
  }
   
  return head;
}

int main(int argc, char **argv)
{
  ulink_list create_list(ulink_list head);
  void print_list(ulink_list head);
  ulink_list insert_list(ulink_list head);
       
  char key[2];
 
  ulink_list head;
  head = (ulink_list)malloc(sizeof(ull_node));
  head->next_node = NULL;
 
  printf("\n");
  printf("\n    线性表单向链式存储示例 \n");
  printf("\n");
  create_list(head);
 
  do
  {
    printf("\n");
    printf("\n");
    printf("\n 1. 初始化|新建表 ");
   
    printf("\n 9. 打印 ");
    printf("\n");
   
    printf("\n 0|q 退出 ");
    printf("\n");
    printf("\n   ");
    scanf("%1s", key);
    getchar();
   
    switch(key[0])
    {
      case '1':
        create_list(head);
        break;
 
      case '9':
        print_list(head);
        break;
     
      case 'q':
      case '0':
        goto QUIT_FLAG;
        break;
       
      default:
        printf("\n %c:找不到命令 ", key[0]);
        printf("\n");
        break;
    }
   
  } while ( (key[0] <= '9') && (key[0] > '0') );
 
 
  QUIT_FLAG:
 
  return 0;
 
}




1、记住,注意跟综链尾的指针指向
2、细心,细心,再细心


_________________
http://lee.youxu.info/


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-03-24 23:12 
头像

注册: 2006-09-21 14:28
帖子: 2376
送出感谢: 0 次
接收感谢: 0 次
另,getch 那段鬼东西还是想不明白


_________________
http://lee.youxu.info/


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-03-26 13:33 

注册: 2007-04-26 10:37
帖子: 32
送出感谢: 0 次
接收感谢: 0 次
具体有什么用途吗


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-03-26 13:45 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
是数据结构练习吧


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-03-26 14:07 
头像

注册: 2006-05-19 9:54
帖子: 1822
地址: Shanghai
送出感谢: 2
接收感谢: 11
恩,总算在学习了 :D


_________________
ニンニク入れますか?
x60 with gentoo


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-03-26 17:38 
头像

注册: 2006-09-04 10:45
帖子: 765
送出感谢: 0 次
接收感谢: 0 次
语言里都有封装好的了,知道怎么回事最好,不知道也问题不大(我指的是做普通的应用开发)


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-03-26 21:48 
头像

注册: 2006-09-21 14:28
帖子: 2376
送出感谢: 0 次
接收感谢: 0 次
回6楼的,一知半解,害死人滴。

getchar 的那个问题,问了 N 个人, N 个人都不知道是怎么回事。我正打算问问 RMS 和 Linus 到底是怎么回事


_________________
http://lee.youxu.info/


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-03-26 22:09 

注册: 2007-11-27 22:20
帖子: 444
送出感谢: 0 次
接收感谢: 0 次
搂住很强大


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译