当前位置:首页 >> IT/计算机 >>

链表 实例


// list.cpp : // #include "stdafx.h"

struct node//定义链表节点数据结构 { int data; struct node * pnext; }; class list { public: struct node* phead;//定义一个变量,用于存放第一个节点 public: list(int a[],int k); void insert(int value,int pos); int getlenth(); void print(); void sort(); int deleteitem(int pos); }; int list::getlenth()//获取链表长度 { struct node* pl=phead; int i=0; while(pl!=NULL) { pl=pl->pnext; i++; } return i; } void list::insert(int value,int pos=0)//在某位置插入某值 { struct node* pinsert=new node; struct node* previous=new node; if(pos==0) { pinsert->data=value; pinsert->pnext=phead; phead=pinsert; } else { int j=1; previous=phead; while(j<pos) { previous=previous->pnext;

j++; } pinsert->data=value; pinsert->pnext=previous->pnext; previous->pnext=pinsert; } } int list::deleteitem(int pos)/删除某节点 { struct node* ppos=phead; struct node* ppos1=phead; int i=0; while(i<pos) { ppos=ppos1; ppos1=ppos1->pnext; i++; } ppos->pnext=ppos1->pnext; delete ppos1; return 1; } list::list(int a[],int k)//用一个数组初始化链表 { phead=NULL; for(int i=0;i<k;i++) { struct node* pin=new node; pin->data=a[k-i-1]; pin->pnext=phead; phead=pin; } } void list::print()/打印链表 { int length=getlenth(); struct node* ptr=phead; for(int i=0;i<length;i++) { printf("%d\t",ptr->data); ptr=ptr->pnext; } } void list::sort()//排序链表 { int length=getlenth(); struct node* ptr=new node; ptr=phead; for(int k=length-1;k>0;k--) {

for(int i=0;i<k;i++)//链表操作从头到位,所以采用正向冒泡 { if(ptr->data>ptr->pnext->data) { int tmp=ptr->data; ptr->data=ptr->pnext->data; ptr->pnext->data=tmp; } ptr=ptr->pnext; } ptr=phead; } } int _tmain(int argc, _TCHAR* argv[])//主函数测试 { int a[5]={3,5,6,8,1}; list list1(a,5); printf("链表初始化为:\n"); list1.print(); printf("\插入值后为:\n"); list1.insert(999); list1.insert(33,3); list1.print(); printf("\n删除值后为:\n"); list1.deleteitem(2); list1.print(); printf("\n排序后为:\n"); list1.sort(); list1.print(); return 0; }


相关文章:
C语言链表的操作实例.doc
C语言链表的操作实例 - 关于 C 语言链表的操作实例 有这样一个结构体 cha
数据结构链表实例.doc
数据结构链表实例 - #include<stdio.h> #incl
C++中链表例子(有详细的注释).txt
C++中链表例子(有详细的注释) 学c++的时候 大家一定会对 链表 很难弄明白所以就给大家一个例子重点的说明了链表的用法 还加了很详细的注释 例子: #include <...
链表实例分析.txt
链表实例分析 - C语言链表例题分析C语言链表例题分析 C语言里链表算是 比较难
链表应用举例.doc
链表应用举例_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 链表应用举例_计算机软件及应用_IT/计算机_专业资料。P1125 新约瑟夫问题 ...
链表实例_图文.ppt
链表实例 - C语言的链表例子,帮助大家学习... 链表实例_IT/计算机_专业资料。C语言的链表例子,帮助大家学习 下列代码有几处错误,请指出 struct node { int score;...
c语言链表大例题.doc
c语言链表例题_电子/电路_工程科技_专业资料。c语言 链表 例题 #incl
单链表程序示例_图文.pdf
链表程序示例 - 单链表程序设计实例7.11】写一个函数,输入n个整数,并按整数的输入顺序建立 一个整数单链表。 【解题思路】 从空单链表开始,每输入一...
嵌入式-Linux内核链表使用实例.pdf
嵌入式-Linux内核链表使用实例_计算机软件及应用_IT/计算机_专业资料。内核链表只有纯链表,没有数据区域,怎么使用呢?方法是将内核链表作为将来整个数据结构的结构体的...
单链表例题_图文.ppt
链表例题_理化生_高中教育_教育专区。单链表例题 delmax是用类程序设计语言描述的,删除带表 头结点的单链表 lk 中数据域值最大的结点的算法。 链表中的结点 ...
用C++编写的双向链表程序示例.doc
用C++编写的双向链表程序示例 - 用C++ 编写的双向链表的的程序实例,简单易懂,规范严谨,适合初学者。里面涉及的内容有:双向链表的创建,链表长度计算,链表的打印,...
单链表应用示例.doc
链表应用示例_IT/计算机_专业资料。学生成绩管理 以单链表作为存储结构,设计和实现某班某门课程成绩管理的完整程序。程序要求完 成如下功能: (1)创建成绩链表,...
链表处理例题.doc
链表处理例题_IT认证_资格考试/认证_教育专区。上课PPT 链表处理例题一、链表遍历 程序设计: 名学生的成绩已在主函数中放入一个带头结点的链 N 表结构中,h 指向...
linux 链表操作示例.doc
linux 链表操作示例_IT/计算机_专业资料。包括全部链表操作,清楚简单!
老谭学生管理链表实例源代码.txt
老谭学生管理链表实例源代码 - #include<stdio.h>
学生信息管理系统 链表版源代码.doc
学生信息管理系统 链表版源代码_管理学_高等教育_教育专区。课设 实验 链表实例 完美理解 #include<stdio.h> #include<stdlib.h> #include<string.h> #include...
循环链表实例(猴子选大王)._图文.ppt
循环链表实例(猴子选大王). - 循环链表 1 循环链表 :猴子选大王。 n只
单链表实例.doc
链表实例 - # include stdlib.h # include mal
C++ 用模版建立一个链表.doc
C++ 用模版建立一个链表 - c++ 用模板构造链表实例 #include &
C语言链表的建立、插入和删除.doc
实例[ 7 - 7 ] 创建包含学号、姓名节点的单链表。其节点数任意个,表以学号为序,低学号的在前,高学 号的在后,以输入姓名为空作结束。在此链表中,要求...
更多相关标签: