数据结构之链表go言语实现
来源:互联网 发布:手机淘宝怎样删除好评 编辑:程序博客网 时间:2024/05/01 08:00
package mainimport ("fmt""os")type Node struct {val intpNode *Node}func create_list() (*Node) {var (len intval int)var pHead *NodepTmp:=new(Node)pTmp.pNode=nilpHead=pTmpif pHead==nil {fmt.Println("分配内存出错,程序退出")os.Exit(-1)}fmt.Println("请输入要生成链表节点个数:len=")fmt.Scanf("%d",&len)for i:=0;i<len;i++ {fmt.Printf("请输入第%d个节点的值:",i+1)fmt.Scanf("%d",&val)pNew:=new(Node)if pNew==nil {fmt.Println("分配内存失败,程序退出")os.Exit(-1)}pNew.val=valpNew.pNode=nilpTmp.pNode=pNewpTmp=pNew}return pHead}func traverse_list(pHead *Node) {p:=pHead.pNodeif p==nil {return}for {fmt.Printf("%d ",p.val)p=p.pNodeif p==nil{break}}fmt.Println()}func isempty_list(pHead *Node) bool {if pHead.pNode==nil {return true}return false}func length_list(pHead *Node) int {var len int=0p:=pHead.pNodefor p!=nil {len++p=p.pNode}return len}func sort_list(pHead *Node) {len:=length_list(pHead)pLeft:=pHead.pNodefor i:=0;i<len-1;i++{pRight:=pLeft.pNodefor j:=i+1;j<len;j++{if pLeft.val>pRight.val {tmp:=pLeft.valpLeft.val=pRight.valpRight.val=tmp}pRight=pRight.pNode}pLeft=pLeft.pNode}}func insert_list(pHead *Node,pos,val int) bool {p:=pHeadvar i int=0for ;i<pos-1;i++{p=p.pNodeif p==nil {break}}if i>pos-1 || p==nil {return false}pNew:=new(Node)pNew.val=valif pNew==nil {fmt.Println("分配内存出错,程序退出")os.Exit(-1)}ptmp:=p.pNodep.pNode=pNewpNew.pNode=ptmpreturn true}func delete_list(pHead *Node,pos int)(bool,int) {p:=pHeadvar i int=0for ;i<pos-1;i++{p=p.pNodeif p.pNode==nil {break}}if i>pos-1 || p.pNode==nil {return false,0}reVal:=p.pNode.valp.pNode=p.pNode.pNodereturn true,reVal}func main() {pHead:=create_list()traverse_list(pHead)//if isempty_list(pHead) {//fmt.Println("链表为空!")//}else {//fmt.Println("链表不为空!")//}//fmt.Println("链表长度为:",length_list(pHead)) //sort_list(pHead)//insert_list(pHead,4,33)pos:=4rebool,reval:=delete_list(pHead,pos)if rebool {fmt.Printf("删除第%d个节点成功,删除的节点值为:%d\n",pos,reval)}else {fmt.Printf("删除节点失败")}traverse_list(pHead)}
0 0
- 数据结构之链表go言语实现
- 数据结构之数组go言语实现
- 数据结构之链式队列go言语实现
- 数据结构之栈go言语实现
- 数据结构之静态队列go言语实现
- 数据结构之链表实现
- 言语
- 言语
- 数据结构之双向链表的实现
- 数据结构之单向链表实现
- 数据结构之双向链表实现
- 数据结构之链表的Java实现
- 数据结构之链表(C实现)
- 动手实现 数据结构 之 “单向链表”
- 动手实现 数据结构 之 “双向链表”
- 动手实现 数据结构 之 “十字链表”
- 动手实现 数据结构 之 “跳跃链表”
- 数据结构之栈的链表实现
- [bzoj4690]Never Wait for Weights
- java编程思想(第十三章)
- centos7 搭建nfs服务器和客户端
- 传递动态内存程序分析
- javascript基础笔记(十)之String的对象
- 数据结构之链表go言语实现
- Media Player音乐播放器 的学习
- 6. ZigZag Conversion
- 实验七 数据缓存写入SD卡
- Java-IO-输入/输出流体系
- [js点滴]JavaScript瀑布流实现技巧
- 学51单片机中的几个小程序
- 关于jsp和html文件的缓存问题
- shell 命令 not found