没有合适的资源?快使用搜索试试~ 我知道了~
《数据结构》复习重点.docx
0 下载量 3 浏览量
2022-12-18
02:36:09
上传
评论
收藏 2MB DOCX 举报
温馨提示
试读
95页
《数据结构》复习重点.docx
资源推荐
资源详情
资源评论
《数据结构》复习重点
第一章绪论
要求、目标:
了解数据逻辑结构的分类;掌握算法的特性及估算算法时间复杂度的方法;
熟悉数据结构的基本基本概念和术语。
一、基本概念和术语.数据结构:是一门研究非数值计算的程序设计问题中计算机的操作对象 以
及它们之间的关系和操作等的学科。
1 .数据:是对客观事物的符号表示,即所有能输入到计算机中并被计算机程序处理的符号的
总称。
2 .数据项:数据的不可分割的最小单位。
3 .数据元素(数据结点):数据的基本单位,在程序中作为一个整体处理, 由假设干数据
项组成。
4 .数据对象:性质相同的数据元素的集合,是数据的一个子集如:四季对象是集合:
{春,夏,秋,冬}
自然数对象是集合:{0, 1, 2, 3,…}字母字符对象是集合:{ ‘A" 'B',…'Z' }
5 .数据结构的分类:线性结构和非线性结构。
6 .数据结构的形式化定义:数据结构是一个二元组,可定义为Data_Structure=(D,S)
其中:D是数据元素的有限集合,S是D上关系的有限集合.序偶:两个元素间的前
后关系。<a,b>a是b的前驱结点,b是a的后继 结点
例:四季的描述 B= (D, R)D={春,夏,秋,冬}
R= {<春,夏>,<夏,秋>,<秋,冬〉}
7 .物理结构(存储结构或映像):数据结构在计算机中的表示。
8 .存储结构的分类:
while(p->next&&j<I-1){p=p->next; j++;)
if(! (p->next) | |j >1-1 )retum 1;
q=p->next;
*e=q->data;
p->next=q->next;
free(q);
return 0;}
15 .查找与给定值相同的第一个结点
NODE *locatenode(NODE *h, int key) {NODE *p=h->next;while(p&&p->data!=key)
p=p->next;
return p;}
16 .合并两个递减有序的链表,合并后仍为递减有序
NODE *merge_L(NODE *ha, NODE *hb) {NODE *p=ha->next, *q=hb->next, *r, *s;
s=(NODE *)malloc(sizeof(NODE));
s->next=NULL;while(p!=NULL&&q! =NULL) if(p->data>q->data)
{r->next=p; r=p; p=p->next;} else
{r->next=q; r=q; q=q->next;} if(p二二NULL) r->next=q;
else r->next=p;
return s;}
(二)循环链表return (0);
编译:
gcc -oxmlCreator xmlCreator.cpp -I
/home/usr/libxml2/xmlinst/includ e/libxml2/
-L /home/usr/libxml2/xmlinst/lib/ -lxml2(绿色文字为libxml2安装路
径)
7后接头文件目录
-L
后接
lib
库目录
2、解析XML文档
解析文档时仅仅需要文件名并只调用一个函数,并有错误检查,常
用的相关函数有xmlParseFileO, xmlParseDoc (),获取文档指针后, 就可
以使用xmlDocGetRootElement ()来获取根元素节点指针,利用 该指针就可
以在DOM树里漫游了,结束后要调用xmlFreeDoc()释放。
例如2:
xmlDocPtr doc;〃定义解析文档指针
xmlNodePtr cur;〃定义结点指针(你需要它为了在各个结点间移动)
xmlChar *key;
doc = xmlReadFile(url, MY_ENCODING, 256); 〃解析文件
/*检查解析文档是否成功,如果不成功,libxml将指一个注册的 错
误并停止。一个常见错误是不适当的编码。XML标准文档除了用 UTF-8或
UTFT6外还可用其它编码保存。如果文档是这样,libxml 将自动地为你转
换到UTF-8o更多关于XML编码信息包含在XML标准 中。*/
if (doc == NULL ) {fprintf (stderr, ^Document not parsed
successfully. \n〃); return;
)
cur = xmlDocGetRootElement (doc); 〃确定文档根元素
/*检查确认当前文档中包含内容*/
if (cur == NULL) {fprintf (stderr, ''empty document\n
z/
);
xmlFreeDoc (doc);return;
/*在这个例子中,我们需要确认文档是正确的类型。“root"是在这
个例如中使用文档的根类型。*/
if (xmlStrcmp(cur->name, (const xmlChar *) 〃root〃)) { fprintf
(stderr, ^document of the wrong type, root node !=
root");xmlFreeDoc(doc);
return;
)
cur = cur->xmlChiIdrenNode;
while(cur!=NULL) {if ((! xmlStrcmp (cur->name, (const xmlChar *)
“keyword"))) { key = xmlNodeListGetString(doc, cur->xmlChiIdrenNode,
1); printf ("keyword: %s\n〃,key);
xmlFree(key);)
cur = cur->next;
}
xmlFreeDoc(doc);
3、修改XML元素及属性等信息
要修改XML文档里的元素及属性等信息,先需要解析XML文档,获得一
个节点指针(xmlNodePtr node),利用该节点指针漫游DOM树,就 可以在XML
文档中获取,修改,添加相关信息。
例如3:
得到一个节点的内容:
xmlChar lvalue = xmlNodeGetContent(node);返回值value应该使用
xmlFree(value)释放内存
得到一个节点的某属性值:
xmlChar lvalue = xmlGetProp(node, (const xmlChar*)〃prop]〃);
返回值需要xmlFree (value)释放内存
设置一个节点的内容:
xmlNodeSetContent(node, (const xmlChar *)〃test〃);设置一个节
点的某属性值:
xmlSetProp(node, (const xmlChar *)〃propl〃, (const xmlChar *)
〃vl〃);
添加一个节点元素:
xmlNewTextChiId (node, NULL, (const xmlChar *)“keyword”,
剩余94页未读,继续阅读
资源评论
matlab大师
- 粉丝: 2449
- 资源: 9万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功