链表存储从文件读取的数据

 1 #include"getWhitelist_demo.h"
 2
 3 void Initialize_List(List *l)
 4 {
 5     *l=(List)malloc(sizeof(Node));
 6     (*l)->Next=NULL;
 7 }
 8
 9 void Insert(ElemType X,List L)
10 {
11     List TmpCell,P=L;
12     TmpCell = (List)malloc(sizeof(Node));
13     TmpCell->Element=(ElemType)malloc(strlen(X)*sizeof(*X));///0001
14     if(TmpCell==NULL)
15         return 0;
16     ///TmpCell->Element=X;error0011
17     strcpy(TmpCell->Element,X);///0002
18     TmpCell->Next=NULL;
19     while(P->Next!=NULL)
20         P=P->Next;
21     P->Next=TmpCell;
22     return 1;
23 }
24
25 List GetLists(const char* file)
26 {
27     List lst,P;
28     Initialize_List(&lst);
29     FILE * fp;
30     char buf[1024];
31     fp=fopen(file,"rw+");
32     if(!fp)
33         perror("file:");
34     while(fgets(buf,1023,fp)!=NULL)
35     {
36         Insert(buf,lst);
37     }
38     return lst;
39 }
40
41 void printout(List llst)
42 {
43     Position P;
44     P=llst->Next;
45     while(P!= NULL)
46     {
47         printf("Element: %s",P->Element);
48         P=P->Next;
49     }
50 }

 1 #ifndef GETLISTS_DEMO
 2 #define GETLISTS_DEMO
 3
 4 #include<stdio.h>
 5 #include<string.h>
 6
 7 typedef char* ElemType;
 8
 9 typedef struct Node Node;
10 typedef struct Node* List;
11 typedef List Position;
12 struct Node
13 {
14     ElemType Element;
15     List Next;
16 };
17
18 #endif // GETLISTS_DEMO

今天犯了一个错误,在第一段代码里面是error0001的错误,这里只是“重复性的将指向文件读取的那个字符数组的地址”,这样导致每次将链表打印的时候总是最后一个值。

将error0001换成0001、0002两行之后,问题解决了,因为这样真正的是将所有文件读取的值存储到了链表而不只是重复性的去复制指针地址(而且是一个指针地址)。

时间: 2024-11-07 03:25:43

链表存储从文件读取的数据的相关文章

scrapy 抓取拉勾网数据

其实很简单,却因为一些小问题,折腾不少时间,简要记录一下,以备后需. >> scrapy startproject lagou >> cd lagou >> scrapy gen lagou_jd www.lagou.com 定义item 在items.py中继续完善定义: # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in: #

从文件读取内容,删除一个数据,把删除后的数据重新写入到文件

demo.php : <!--从文件读取内容,删除一个数据,把删除后的数据重新写入到文件--><?php    $aa = file_get_contents('picinfo.db');    $bb = rtrim($aa,'@');    //var_dump($bb);exit;    $array = explode('@@',$bb);    //var_dump($array);exit;        /****测试以下代码,打开var_dump($cc);exit;并依

Scrapy爬取全站数据并存储到数据库和文件中

scrapy五大核心组件简介 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 下载器(Downloader) 用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的) 爬虫(Spiders) 爬虫

_DataStructure_C_Impl:二叉树的二叉链表存储结构

// _DataStructure_C_Impl: #include<stdio.h> #include<stdlib.h> #define MaxSize 100 typedef char DataType; typedef struct Node{ //二叉链表存储结构类型定义 DataType data; //数据域 struct Node *lchild; //指向左孩子结点 struct Node *rchild; //指向右孩子结点 }*BiTree,BitNode;

Java语言实现通过Ajax抓取后台数据及图片

1.Java语言实现通过Ajax抓取后台数据及图片信息 1.1数据库设计 create table picture( pic_id number not null, pic_name varchar(200)not null, pic_url varchar2(200) not null, pic_descp varchar2(200) not null, pic_price varchar2(200) not null ) insert into picture values(1 ,'小米5s

数据结构之---C语言实现广义表头尾链表存储表示

//广义表的头尾链表存储表示 //杨鑫 #include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <string.h> #define MAXSTRLEN 40 ) typedef char SString[MAXSTRLEN+1]; typedef char AtomType; // 定义原子类型为字符型 typedef enum{ ATOM, LIST // ATOM==0:原

利用linux curl爬取网站数据

看到一个看球网站的以下截图红色框数据,想爬取下来,通常爬取网站数据一般都会从java或者python爬取,但本人这两个都不会,只会shell脚本,于是硬着头皮试一下用shell爬取,方法很笨重,但旨在结果嘛,呵呵. 2.首先利用curl工具后者wget工具把整个网站数据爬取下来 curl 网址 >wangzhan.txt 3.查看wangzhan.txt文件,找出规则,看到数据是存放在哪个地方,本人是把txt文件拷到本机上用UE打开方便查看.通过查看文件,我发现数据是存储在"var aut

二叉链表存储二叉树

链式存储结构 二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系. 通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址.其结点结构为: 其中,data域存放某结点的数据信息:lchild与rchild分别存放指向左孩子和右孩子的指针,当左孩子或右孩子不存在时,相应指针域值为空(用符号∧或NULL表示).利用这样的结点结构表示的二叉树的链式存储结构被称为二叉链表,如图5-8所示. (a) 一棵二叉树 

稀疏矩阵的十字链表存储表示

/* Name: 稀疏矩阵的十字链表存储表示 Copyright: Author: 巧若拙 Date: 29-10-14 21:25 Description: //------------------------------------------------------------------------- 除了用三元组顺序表来存储压缩矩阵,我们还可以用链表结构来存储,实际上后者应用更广泛, 因为当非零元素的数目较大时,三元组的时间复杂度实在太高.链表结构中最常见的是十字链表, 在十字链表中,